怎么在MacOS中恢复MySQL超级用户密码

本教程将介绍如何在MacOS中恢复MySQL超级用户密码的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

怎么在MacOS中恢复MySQL超级用户密码 教程 第1张

问题描述

我启动了我的MAMP,并尝试通过localhost127.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超级用户密码的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。