1.防火墙没有放行3306端口,使用如下命令放行端口
firewall-cmd --add-port=3306/tcp
//注意,这个命令是临时添加放行端口,另外不要忘记在自己物理主机上放行TCP哦
2.如果报错类似于ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.253.128:3306' (111)
netstat -nlp | grep 3306
如果显示类似于下面,3306端口前是:::,那可能不是这个错误
如果3306端口前是127.0.0.1,那么可能是bind-address搞得鬼
我上网查了很久,才发现/etc/mysql/my.cnf中最后两句使用了!included
这两句是引用配置,可以看到,配置文件是在/etc/mysql/mysql.conf.d/中
这个文件夹之内有两个文件,一个是mysql.conf,另一个是mysqld.conf(比前面多了个d,是daemon的缩写)
打开后发现mysql.cnf是空的,mysqld.cnf中有我们要找的东西,如下图(已修改)
这里的bind-address本来的值是127.0.0.1,即本机地址,其他地址无法访问,需要将其注释或者改成bind-address=*
这样之后就改好了,别忘了重启MySQL服务哦
命令是
systemctl restart mysql
3.如果报错的格式是pymysql.err.OperationalError: (1130, "192.168.253.128' is not allowed to connect to this MySQL server") 可能有所不一样,但是是1130代码
这种情况很简单,可能是用户的host设置的是本地用户,如下图(以root为例)
这里的root的host权限是localhost,需要改成‘%‘。(当然,如果你会的话可以再创建之初就设置’%‘)
update user set host='%' where user='root';
再查看一下:
这样就成功了
这些就是我在远程连接的时候遇到的一些小问题,主要是为了方便本人进行回顾的,当然,如果你有需要,请随意,谢谢阅读。