远程连接mysql提示报错解决方案

远程个链接mysql报错信息如下:

1130:”1130 – Host XXX is not allowed to connect to this MySQL server”;
10060:“Can’t connect to MySQL server on ‘*.*.*.*'(10060)”;

先说下1130,这是因为没有开启远程连接权限;

10060:这个就多了,端口没有开启;服务器防火墙没有关闭,连接权限没有开启等;

这两种报错看似有区别,但处理方法基本都一样,1130报错建议使用第二种“授权法”;10060就需要一步一步检查,端口,防火墙,以及权限等。

远程连接mysql提示错误问题如下:

1、ecs服务器没有开启mysql端口;
2、关闭服务器的防火墙;
3、服务器端的mysql没有给远程连接权限;

 

首先,查看ecs服务器的mysql端口是否开启:

阿里云ecs为例:需要在ecs的安全规则里添加mysql端口(3306),这是第一步,也是最关键的一步,不管后面怎么设置mysql,如果这个端口不开启,照样是不能链接上.

其次,关闭服务器的防火墙:

如同第一步一样,防火墙如果开启状态下,也是不能允许外部远程连接到mysql,命令如下:
关闭防火墙命令:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
关闭开机自启动:systemctl disable firewalld.service
开启开机启动:systemctl enable firewalld.service

 

再次,开启MySQL远程访问权限:

1、登陆mysql数据库

mysql -u root -p
然后输入密码进行登录

查看user表
mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+————————-+——+——————————————-+
| host | user | password |
+————————-+——+——————————————-+
| localhost | root | *78349669AA2253CC69381AB0F685E0FAACEB955C |
| izwz94iobokq93gj4kyvr1z | root | *78349669AA2253CC69381AB0F685E0FAACEB955C |
| 127.0.0.1 | root | *78349669AA2253CC69381AB0F685E0FAACEB955C |
| ::1 | root | *78349669AA2253CC69381AB0F685E0FAACEB955C |
| localhost | | |
| izwz94iobokq93gj4kyvr1z | | |
| % | root | *78349669AA2253CC69381AB0F685E0FAACEB955C |
+————————-+——+——————————————-+
7 rows in set (0.00 sec)
这个截图是我已经设置好的,各自的版本不一样,显示的内容会有所差别.

可以看到在user表中已创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,

(1)有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。

2、实现远程连接(连接权限的第二种方法:(授权法)

将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。
update user set host = ’%’ where user = ’root’;

将权限改为ALL PRIVILEGES

mysql> use mysql;
Database changed
mysql> grant all privileges on *.* to root@’%’ identified by “password”;
Query OK, 0 rows affected (0.00 sec)

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

mysql> select host,user,password from user;
显示的就是已经设置好的数据了;

这样机器就可以以用户名root密码root远程访问该机器上的MySql。

3、实现远程连接(连接权限的第二种方法:改表法)

use mysql;
update user set host = ‘%’ where user = ‘root’;
这样在远端就可以通过root用户访问Mysql.

注意:该表法修改后会有bug,小编实际使用该表法后,出现navicat可以连接了,但是在安装框架的时候数据库不能正常连接,具体原因没有去研究,所以慎用。建议使用第二种,授权法,屡试不爽啊!!!这是个人经历的,如果不对的地方可以下方留言,或者点击右下角的群,加入群探讨。

文章部分内容是引用网友的文章,引用地址:https://www.cnblogs.com/weifeng1463/p/7941625.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注