Mysql开启远程访问需要同时满足一下两个条件: 1、数据库用户名允许外网IP访问 2、服务器允许外网IP访问
以下假设Mysql服务器地址为192.168.1.10,端口为3306
数据库设置 1、添加外网数据库使用的用户名和密码,并赋予外网可访问的权限
#假设用户名为write,密码为write,%代表任何IP都可以访问 grant all on *.* to 'write'@'%' identified by 'write';2、确认my.cnf配置(之前遇到的一个坑)
#注释掉下面这行配置,或者修改为远程的服务器IP #bind-address = 127.0.0.1防火墙端口开启
可以通过telnet确认3306端口是否开启
telnet 192.168.1.10 3306如果未开启,可以按照以下方法开启。
1、执行 vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :syn-flood - [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT # 加入下面这行,开启3306端口 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 20000:30000 -j ACCEPT -A INPUT -p icmp -m limit --limit 100/sec --limit-burst 100 -j ACCEPT -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn-flood -A INPUT -j REJECT --reject-with icmp-host-prohibited -A syn-flood -p tcp -m limit --limit 3/sec --limit-burst 6 -j RETURN -A syn-flood -j REJECT --reject-with icmp-port-unreachable COMMIT2、重启iptables
service iptables restart 或者 /etc/init.d/iptables restart下面可以试着在远程服务器上连接Mysql了
mysql -h 192.168.1.10 -P3306 -uwrite -p转载于:https://www.cnblogs.com/chenguoli/p/7607334.html