怎么在MacOS中恢复MySQL超级用户密码
本教程将介绍如何在MacOS中恢复MySQL超级用户密码的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。
问题描述
我启动了我的MAMP,并尝试通过localhost
或127.0.0.1
连接到我的MySQL服务器,我尝试了所有可能的密码,我认为它是正确的,但由于某些原因它仍然不喜欢它,所以我想我忘了它。我需要帮助。
尝试#1
输入所有可能的密码
MySQL -u root -h localhost -p
输入密码:<;-
我收到
错误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
bheng958500.2 1.0 2869440 175404?? S 8:48AM0: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 1240.0 0.0 28648484040?? Ss22Sep170: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
bheng958630.0 0.0 2423384 396 s009 R+ 8:48AM0:00.00 grep mysql
bheng957490.0 0.0 24487562496?? S 8:48AM0:00.03 /bin/sh /usr/local/opt/mysql/bin/mysqld_safe --bind-address=127.0.0.1 --datadir=/usr/local/var/mysql
bheng663790.0 0.1 26969369304?? S 8:06AM0: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
bheng662630.0 0.0 24467082100?? S 8:06AM0: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超级用户密码的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。