MySQL远程连接问题解决方法

Posted 贪狼木星

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL远程连接问题解决方法相关的知识,希望对你有一定的参考价值。

问题:Host ‘XXX‘ is not allowed to connect to this mysql server.

原因分析:

1.登录到mysql:
在开始目录下管理员身份运行【MySQL 5.7 Command Line Client】
Enter password: ********
输入密码:xxxxxx
2.查看user表:
mysql> use mysql;
mysql> select host,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| localhost | root |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
3 rows in set (0.00 sec)

user表中host、user字段标识了可以访问数据库的主机和用户。当前的数据就表示只能本地主机localhost通过root用户访问。
而通过ip等远程连接不允许连接。

 

解决方法:

为了让数据库支持远程主机访问,有两种方法可以开启远程访问功能。

第一种(改表法):
修改user表中的host字段值,将localhost修改成安装mysql数据库的ip地址。或者直接修改成%。%表示所有主机都可以通过root用户访问数据库。
mysql> update user set host= ‘%‘ where user = ‘root‘;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0

mysql> select host ,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
3 rows in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


第二种(授权法):
如果你想root使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘mypassword‘ WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘192.168.1.3‘ IDENTIFIED BY ‘mypassword‘ WITH GRANT OPTION;

输入命令mysql> flush privileges;
回车使刚才的修改生效,再次远程连接数据库成功。

 

附注:

window 防火墙务必要开放MySQL连接的端口(默认3306)。

 



































以上是关于MySQL远程连接问题解决方法的主要内容,如果未能解决你的问题,请参考以下文章

解决远程连接mysql很慢的方法

[转]解决远程连接mysql很慢的方法

解决远程连接mysql错误1130代码的方法

mysql远程连接失败解决方法

解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)

远程桌面连接MySQL遇到的问题及解决方法总结