1,查看防火墙的状态
service iptables status
输出:
iptables: Firewall is not running.
证明你的防火墙没有打开可以。
如果输出:为一些规则
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
那么这里表示你的防火墙已经启动并且使用了一些规则。
(为了实现远程连接)
解决办法 1 :直接关闭防火墙。
service iptables stop
解决办法2:向iptables的配置文件中添加3306的规则
vim /etc/sysconfig/iptables
添加下面这段话
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
注意 这里添加规则须添加到合理的位置否则也还是远程访问不了。如图所示
须添加到22端口规则后面即可。
2 在mysql中添加权限
mysql -uroot -p
登录数据库
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
重启 mysql服务,和防火墙服务,即可。