我只是想打开 mysql 以便可以从任何服务器 ip 访问。
我已经注释掉bind-address
了/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
答案1
您是否注释掉了绑定地址或将其绑定为 0.0.0.0?
另外,尝试彻底清除防火墙。使用 iptables-save > foo.fw 清除它们,然后执行 iptables -F 清空规则列表。
您还可以通过执行 netstat -tl 来查看 mysql 是否在“*”上列出 3306,以查看它是否正确绑定
答案2
您还需要在 mysql 中启用它。
例如:USE mysql; SELECT * FROM user; UPDATE user set host="%" WHERE host='127.0.0.1'; 希望这会有所帮助。