我只是想打开 mysql 以便可以从任何服务器 ip 访问。
我已经注释掉了bind-address
in /etc/mysql/my.conf
。
我已经在 mysql 中设置了用户帐户。
我不知道是什么阻止了我连接。
我看到这越具有挑战性,我就越意识到它有多大的安全风险,我明白了,我只是想能够暂时做到这一点。
我认为 iptables 防火墙是阻止我实现这一目标的最后一件事,但sudo iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
似乎什么也没做。
thomas@vannevar:~$ netstat -tl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *:git *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp6 0 0 [::]:git [::]:* LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 [::]:https [::]:* LISTEN
和
root@vannevar:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere 127.0.0.0/8 reject-with icmp-port-unreachable
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT icmp -- anywhere anywhere icmp echo-request
LOG all -- anywhere anywhere limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain fail2ban-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
你是把绑定地址注释掉还是绑定到0.0.0.0?
另外,尝试完全刷新防火墙。使用 iptables-save > foo.fw 转储它们,然后执行 iptables -F 清空规则列表。
您还可以通过执行 netstat -tl 来查看它是否正确绑定,以查看 mysql 是否在“*”上列出 3306
您还需要在 mysql 中启用它。
例如:使用 mysql;从用户中选择 *;UPDATE 用户设置主机 ="%" WHERE host='127.0.0.1'; 希望这可以帮助。