如何在MacOS中恢复MySQL超级用户密码 [英] How to recover mysql root password in MacOS

查看:303
本文介绍了如何在MacOS中恢复MySQL超级用户密码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我启动了我的MAMP,并尝试通过localhost127.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆