当我们通过终端连接 MySQL 数据库时,我们会看到这样的错误信息:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
或者
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
解决上面错误的方法之一就是重新设置我们的 MySQL 的 root 密码(亲测有效(⊙o⊙)哦!)。
-
关闭正在运行的 MySQL,如果 MySQL 没有运行可以跳过。
(1)在终端使用命令行关/usr/local/mysql/bin/mysqladmin -u root -p shutdown
使用该命令关闭 MySQL ,如果 MySQL 密码忘记了,只能通过系统偏好设置里面关闭了!
(2)直接使用偏好设置关
如图点击 Stop MySQL Server 按钮关闭。
-
安全模式运行 MySQL
进入 MySQL 的 bin 目录执行如下命令。$ cd /usr/local/mysql/bin $ sudo su
之后输入管理员密码会看到
sh-3.2#
之后我们输入下面命令以安全模式运行 MySQL
sh-3.2#./mysqld_safe --skip-grant-tables &
执行完命令后,我们打开 Mac 的系统偏好设置,选择 MySQL ,我们会发现 MySQL 重新运行了,如图:
回到终端点击 Command + N 重新打开一个终端,
输入mysql -u -root
这时候我们不需要密码就能进入 MySQL ,
Your MySQL connection id is 57 Server version: 5.7.10 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
注意:这里有的时候会进不来,这个时候可以尝试重启mac电脑,具体原因我也不清楚。
-
修改 root 密码
首先执行下面命令为了能够修改任意的密码mysql> FLUSH PRIVILEGES;
之后执行修改密码的 SQL 语句,这里的 asdf1234 可以替换你自己想要修改的密码
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('asdf1234');
最后刷新
FLUSH PRIVILEGES;
-
退出安全模式
使用 Control+D 推出 MySQL ,然后关闭安全模式数据库。
关闭数据库命令:/usr/local/mysql/bin/mysqladmin -u root -p shutdown
这里要输入你刚才设置的密码,OK了!
到目前为止你就找回了你 MySQL 的密码啦! -
验证登录
正常启动 MySQL 数据库,使用命令/usr/local/mysql/share/mysql.server start
输入刚才设置的密码 asdf1234
如果上面的命令不执行,同理到系统偏好里开启 MySQL 服务器。最后执行终端命令
$mysql -u root -p
然后输入刚才设置的密码 asdf1234 我们就可以正常进入 MySQL 啦!
参考文章:http://blog.csdn.net/u014410695/article/details/50630233