如何在MacOS中恢复MySQL超级用户密码 [英] How to recover mysql root password in MacOS
问题描述
localhost
或127.0.0.1
连接到我的MySQL服务器,我尝试了所有可能的密码,我认为它是正确的,但由于某些原因它仍然不喜欢它,所以我想我忘了它。我需要帮助。
尝试#1
输入所有可能的密码
MySQL -u root -h localhost -p
输入密码:<;-我已经尝试了几乎10种可能的密码
我收到
错误1045(28000):拒绝访问用户‘ROOT’@‘LOCALHOST’(使用密码:no)
尝试#2
输入可能的密码
MySQL -u root -h localhost
我收到
错误1045(28000):拒绝访问用户‘ROOT’@‘LOCALHOST’(使用密码:no)
尝试#3
MySQL.server stop
我收到
错误!找不到MySQL服务器PID文件!
我正在尝试运行此程序
mysqld_safe --skip-grant-tables &
我收到
尝试#4
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
我仍然得到
错误1045(28000):拒绝访问用户‘ROOT’@‘LOCALHOST’(使用密码:no)
尝试#5
关闭我的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
我仍然得到
错误1045(28000):拒绝访问用户‘ROOT’@‘LOCALHOST’(使用密码:no)
我不知道还能尝试什么。
我无法真正设置超级用户密码,因为我甚至无法进入。
这是我的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
🌈~
推荐答案
这就是在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,它现在应该可以使用新密码工作了。
这篇关于如何在MacOS中恢复MySQL超级用户密码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!