如何在MacOS中恢复mysql root密码
我启动我的MAMP并尝试通过localhost
或127.0.0.1
连接到我的MySQL服务器,我尝试了所有可能的密码,我认为它是正确的,但由于某些原因,它仍然没有喜欢它,所以我想我以某种方式忘了它。我需要帮助。如何在MacOS中恢复mysql root密码
尝试#1
输入所有可能的密码
MySQL -u root -h localhost -p
输入密码:< --- 我几乎尝试了10种可能的密码
我得到
ERROR 1045(28000):拒绝访问用户 '根' @ 'localhost' 的(使用密码:NO)
尝试#2
输入可能的密码
MySQL -u root -h localhost
我得到
ERROR 1045(28000):拒绝访问用户 '根' @ '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
我仍然得到
ERROR 1045(28000):拒绝访问用户 '根' @ 'localhost' 的(使用密码: NO)
尝试#5
关闭我的甲基苯丙胺的应用程序,并运行此
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):拒绝访问用户 '根' @ 'localhost' 的(使用密码:NO)
我不还有什么再尝试了。
我无法真正设置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
〜
你必须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 [email protected]'localhost' = PASSWORD('new_password');
mysql> FLUSH PRIVILEGES;
mysql> exit;
service mysql restart
然后,你将能够使用连接: 的mysql -u根-p 您的密码
这是你如何能做到这在MacOS上塞拉利昂,也许你通过安装,并在系统偏好有一个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 [email protected]'localhost' = PASSWORD('secret');
mysql> FLUSH PRIVILEGES;
mysql> exit
从System Preference面板停止并重新启动MySQL,它现在应该使用新密码。
请按照相同的顺序进行操作。
请确保您的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
更新,如下图所示(如果你被列没有发现错误,则删除一个)
MariaDB [mysql]> update user set authentication_string=PASSWORD('password'), password=PASSWORD('password') where user='root';
MariaDB [mysql]> FLUSH PRIVILEGES;
MariaDB [mysql]> quit;
都
authentication_string
和
password
列有相同的密码
现在,停止一切,包括MySQL
服务器和MAMP应用程序。
而且,搜索config.inc.php
文件您MAMP文件夹中(你可以使用命令 + 空间和搜索该文件)。
您可能没有权限更改此文件。更新文件权限后,您需要查找$cfg['Servers'][$i]['password']
并更新密码值,如下所示。
$cfg['Servers'][$i]['password'] = 'password';
保存此文件并在正常模式下重新启动所有设备。并尝试连接root
用户与新密码,如下所示:
mysql -uroot -ppassword
请记住,我在Mac OS上。 – ihue
'-bash:/etc/init.d/mysql:没有这样的文件或目录' – ihue
我应该从哪里开始执行你的建议命令? – ihue