个人在学习Centos环境下安装完MySQL,折腾了半天终于安装成功,本机测试连接没有问题.然后想远程连接MySQL,发现连接不上,由于个人对这块不是太熟,混乱之下连接是不是报2003就是报1130的错误.网络搜索说是可能没有给远程主机授权登录,然后又在服务器上面登录数据库,修改远程登录的权限(关于授权问题,可以参考本站文章远程连接MySQL数据库root账号报错:2003 - can't connect to MySQL server on '*'或远程连接MySQL数据库root账号报错:1130 - Host is not allowed to connect to this MySQL server),完成之后,发现还是连接不上.
再次查阅之下,发现是开启了防火墙.关闭防火墙后再次尝试登陆,这次可以登录.但是出于安全考虑,系统防火墙是不能关闭的,在这种情况下,就需要设置防火墙,开放3306端口(有关Centos7下防火墙的设置,可以参考本站文章Centos7防火墙设置和管理).具体操作如下:
1. 防火墙打开3306端口号(端口号可以为一个范围,如:7000-8000)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
下面3行是参数说明
#–zone #作用域
#–add-port=80/tcp#添加端口,格式为:端口/通讯协议
#–permanent #永久生效,没有此参数重启后失效
2.防火墙删除指定端口号(端口号可以为一个范围,如:7000-8000)
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
3. 重启防火墙
firewall-cmd --reload#重启firewall
4. 查看是否已经开放3306端口
firewall-cmd --list-ports #查看已经开放的端口