mac 上 mysql root'@'localhost

之前成功安装mysql后,今天突然mysql出现了问题,报如下错误:

error: 'Access denied for user 'root'@'localhost' (using password: NO)'


通过如下办法解决:

step 1. 

sudo /usr/local/mysql/support-files/mysql.server stop

step 2. 

cd /usr/local/mysql/bin/

sudo ./mysqld_safe --skip-grant-tables

去掉./,cmd显示找不到mysql_safe不知道啥原因的

step 3. 保持当前cmd窗口,同时启动另外一个cmd窗口

执行:mysql -u root

step 4.

mysql > UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

mysql > FLUSH PRIVILEGES;

注意修改PASSWORD('password') 中的‘password’到自己期望的值,如PASSWORD('xx'),那么mysql数据库的密码就为"xx"了。

step 5.

关闭当前所有的teminal 窗口,然后重新连接:

mysql -uroot -p

正常情况就能够用新密码登陆了,但是还有可能报错

我的情况是mysql客户端可以通过127.0.0.1连到mysql上,不能够

通过localhost连上mysql。

解决办法:

通过127.0.0.1连上mysql数据库后,里面可以看到一个名字叫“mysql”

的数据库,展开这个数据库,定位到"user"这个table,将localhost的权限

设置为和127.0.0.1相同,我的方法是:delete localhost 所在记录,

然后duplicate 127.0.0.1这条记录,将127.0.0.1 修改为localhost,

接着执行FLUSH PRIVILEGES;

就能够正常连接了。


参考资料:

https://stackoverflow.com/questions/8541115/mysql-password-issues-mac-os-x-lion



评论

© ftutor / Powered by LOFTER