主要现象是,命令行输入mysql会提示:Access denied for user 'root'@'localhost' (using password: YES)
折腾了蛮久,找了多种方式就是连不上,最后以下处理搞定:
1、配置无需验证登录方式
vi /etc/my.cnf
[mysqld]
skip-grant-tables //增加这一行,目的是不用验证就可以登录mysql
2、登陆数据库
命令行输入 mysql,如果不识别,则需要配置环境变量,这里就不多说了
可以先查看下数据库
mysql> show databases;
mysql> use mysql;
mysql> select * from user;
可以看到user表中的内容
//修改localhost为%
mysql> UPDATE user SETHost= ‘%’ WHEREUser=‘root’;
mysql> flush privileges;
mysql> quit
3、将skip-grant-tables注释掉或者删除
重启服务器
如果还是不行,可能需要修改一下密码
1.先停掉原来的服务
service mysqld stop
2.使用安全模式登陆,跳过密码验证
mysqld --user=mysql --skip-grant-tables --skip-networking&
3.登陆
mysql -uroot mysql
4.修改密码
mysql > update user set authentication_string = password(‘密码’)
where user = 'root' and Host = ‘%’
5.刷新权限
mysql > flush privileges;
6.重新使用正常模式登陆
#mysql -uroot -p
#enter password : 密码
可以正常登陆。
7.执行其他命令:show databases;
8.配置完成,重启。
参考连接:
1、http://blog.csdn.net/rodulf/article/details/70213412
2、http://www.cnblogs.com/zhanghuilong/p/6563882.html