阿里云服务器 mysql远程连接时,出现连接不上的解决办法

主要现象是,命令行输入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

你可能感兴趣的:(数据库)