2017-10-04 27 views
-1

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

回答

1

你必须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 您的密码

+0

请记住,我在Mac OS上。 – ihue

+0

'-bash:/etc/init.d/mysql:没有这样的文件或目录' – ihue

+0

我应该从哪里开始执行你的建议命令? – ihue

2

这是你如何能做到这在MacOS上塞拉利昂,也许你通过安装,并在系统偏好有一个MySQL的图标,这样的事情:

enter image description here

如果启动和运行,打开终端,运行以下命令:

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,它现在应该使用新密码。

3

请按照相同的顺序进行操作。

请确保您的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_stringpassword列有相同的密码

现在,停止一切,包括MySQL服务器和MAMP应用程序。

而且,搜索config.inc.php文件您MAMP文件夹中(你可以使用命令 + 空间和搜索该文件)。

您可能没有权限更改此文件。更新文件权限后,您需要查找$cfg['Servers'][$i]['password']并更新密码值,如下所示。

$cfg['Servers'][$i]['password'] = 'password'; 

保存此文件并在正常模式下重新启动所有设备。并尝试连接root用户与新密码,如下所示:

mysql -uroot -ppassword