背景:防火墙设备内置Mysql不能在外部访问,需要开通相关的防火墙。发现不指定接口和IP是不能开通的。开通后用有有效的mysql账号访问数据库,不要用root。
开通命令:
iptables -A INPUT -p tcp -i agl0 -d 192.168.1.70 -m tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp -i agl0 -d 192.168.1.70 -m tcp --dport 2181 -j ACCEPT
iptables -A INPUT -p tcp -i agl0 -d 192.168.1.70 -m tcp --dport 9092 -j ACCEPT
关闭命令
iptables -D INPUT -p tcp -i agl0 -d 192.168.1.70 -m tcp --dport 3306 -j ACCEPT
iptables -D INPUT -p tcp -i agl0 -d 192.168.1.70 -m tcp --dport 2181 -j ACCEPT
iptables -D INPUT -p tcp -i agl0 -d 192.168.1.70 -m tcp --dport 9092 -j ACCEPT
如果是mysql仍然不通则还要检查mysql的配置
默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件。
一、修改/etc/mysql/my.conf
找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可
二、为需要远程登录的用户赋予权限
1、新建用户远程连接mysql数据库
grant all on . to admin@’%’ identified by ‘123456’ with grant option;
flush privileges;
允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。
注意admin账户不一定要存在。
2、支持root用户允许远程连接mysql数据库
grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;
flush privileges;