之前成功安装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