我启动我的MAMP并尝试通过localhost
或127.0.0.1
连接到我的MySQL服务器,我尝试了所有可能的密码,我认为它是正确的,但由于某些原因它仍然没有&#39我喜欢它,所以我想我不知何故忘了它。我需要帮助。
输入所有可能的密码
MySQL -u root -h localhost -p
输入密码:< --- 我已经尝试了近10个可能的密码
我得到了
ERROR 1045(28000):拒绝访问用户&root;' @' localhost' (使用密码:否)
输入可能的密码
MySQL -u root -h localhost
我得到了
ERROR 1045(28000):拒绝访问用户&root;' @' localhost' (使用密码:否)
MySQL.server stop
我得到了
ERROR!无法找到MySQL服务器PID文件!
我试图运行此
mysqld_safe --skip-grant-tables &
我得到了
mysqld_safe --skip-grant-tables &
我得到了
[1] 72194
~ 2017-10-04T12:13:42.6NZ mysqld_safe Logging to '/usr/local/var/mysql/BH-MacBook-Pro-15-512GB.local.err'.
2017-10-04T12:13:42.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
2017-10-04T12:13:44.6NZ mysqld_safe mysqld from pid file /usr/local/var/mysql/BH-MacBook-Pro-15-512GB.local.pid ended
打开新标签页
MySQL -u root
我还是
ERROR 1045(28000):拒绝访问用户&root;' @' localhost' (使用密码:否)
关闭我的MAMP应用程序,然后运行
mysqld_safe --skip-grant-tables &
我得到了
[1] 72194
~ 2017-10-04T12:13:42.6NZ mysqld_safe Logging to '/usr/local/var/mysql/BH-MacBook-Pro-15-512GB.local.err'.
2017-10-04T12:13:42.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
2017-10-04T12:13:44.6NZ mysqld_safe mysqld from pid file /usr/local/var/mysql/BH-MacBook-Pro-15-512GB.local.pid ended
打开新标签页
MySQL -u root
我还是
ERROR 1045(28000):拒绝访问用户&root;' @' localhost' (使用密码:否)
我不再尝试什么了。
我无法设置root密码,因为我甚至无法进入。
这是我MySQL的过程
ps aux | grep MySQL
bheng 95850 0.2 1.0 2869440 175404 ?? S 8:48AM 0:00.28 /usr/local/opt/mysql/bin/mysqld --basedir=/usr/local/opt/mysql --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mysql/lib/plugin --bind-address=127.0.0.1 --log-error=/usr/local/var/mysql/bh-mbp-15-512gb.ad.benu.net.err --pid-file=/usr/local/var/mysql/bh-mbp-15-512gb.ad.benu.net.pid
_mysql 124 0.0 0.0 2864848 4040 ?? Ss 22Sep17 0:32.26 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so
bheng 95863 0.0 0.0 2423384 396 s009 R+ 8:48AM 0:00.00 grep mysql
bheng 95749 0.0 0.0 2448756 2496 ?? S 8:48AM 0:00.03 /bin/sh /usr/local/opt/mysql/bin/mysqld_safe --bind-address=127.0.0.1 --datadir=/usr/local/var/mysql
bheng 66379 0.0 0.1 2696936 9304 ?? S 8:06AM 0:00.51 /Applications/MAMP/Library/bin/mysqld --basedir=/Applications/MAMP/Library --datadir=/Applications/MAMP/db/mysql --plugin-dir=/Applications/MAMP/Library/lib/plugin --log-error=/Applications/MAMP/logs/mysql_error_log.err --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --socket=/Applications/MAMP/tmpmysql/mysql.sock --port=8889
bheng 66263 0.0 0.0 2446708 2100 ?? S 8:06AM 0:00.02 /bin/sh /Applications/MAMP/Library/bin/mysqld_safe --port=8889 --socket=/Applications/MAMP/tmp/mysql/mysql.sock --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --log-error=/Applications/MAMP/logs/mysql_error_log
〜
答案 0 :(得分:9)
这是你可以在macOS Sierra中完成它的方法,可能是你通过pkg安装它,并且系统首选项中有一个MySQL图标,如下所示:
如果已启动并正在运行,请打开终端并运行此命令:
pgrep -fl mysql
这将帮助您找到mysqld
的路径以及用于启动服务器的当前命令,输出可能是这样的:
6283 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid
下一步是停止MySQL,您可以通过单击“系统首选项”菜单并单击Stop MySQL Server
按钮来执行此操作。一旦在终端中停止,您将需要再次启动服务器但需要一些额外的选项,像这样:
sudo /usr/local/mysql/bin/mysqld \
--skip-grant-tables \
--skip-networking \
--user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid
pgrep -fl mysql
的输出确实是相同的命令,但在这种情况下,您只需要添加:
--skip-grant-tables --skip-networking
执行此操作后,您会注意到系统偏好设置中的菜单再次为绿色且MySQL应该已启动并运行,现在您可以尝试登录并更改密码:
mysql -uroot
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('secret');
mysql> FLUSH PRIVILEGES;
mysql> exit
从“系统偏好设置”面板停止并重新启动MySQL,它现在应该使用新密码。
答案 1 :(得分:6)
请按照相同顺序执行步骤。
确保您的MySQL服务器已关闭。执行以下命令:
mysql.server stop
然后,以安全模式启动MySQL服务器
mysql.server start --skip-grant-tables --skip-networking
然后,使用root
用户连接到MySQL。
mysql -u root
将数据库从none
更改为mysql
MariaDB [(none)]> use mysql;
Database changed
使用相同的密码更新authentication_string
和password
列,如下所示(如果找不到列错误,请删除一个)
MariaDB [mysql]> update user set authentication_string=PASSWORD('password'), password=PASSWORD('password') where user='root';
MariaDB [mysql]> FLUSH PRIVILEGES;
MariaDB [mysql]> quit;
现在,停止包括MySQL
服务器和MAMP应用程序在内的所有内容。
并在MAMP文件夹中搜索 config.inc.php
文件(您可以使用 command + space 并搜索此文件) 。
您可能没有权限更改此文件。更新文件权限后,您需要查找$cfg['Servers'][$i]['password']
并更新密码值,如下所示。
$cfg['Servers'][$i]['password'] = 'password';
保存此文件并以正常模式重新启动所有内容。并尝试使用新密码连接root
用户,如下所示:
mysql -uroot -ppassword
答案 2 :(得分:1)
您必须重置MySQL root密码,如下所示:
/etc/init.d/mysql stop
/usr/sbin/mysqld --skip-grant-tables --skip-networking &
mysql -u root
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('new_password');
mysql> FLUSH PRIVILEGES;
mysql> exit;
service mysql restart
然后,您将能够使用以下方式进行连接: mysql -u root -p 您的密码
答案 3 :(得分:1)