我知道这有几个线程,但是我已经尝试了所有方法并且我无能为力 - 我只想能够连接到托管在 EC2 上的 MySQL 数据库。
我已将端口 3306 添加到 EC2 上实例的安全组。
我从 my.cnf 文件中删除了 bind_address(默认情况下不再使用跳过网络)并重新启动 MySQL。我也尝试过bind_address =(外部IP,它以54开头。)和bind_address = 0.0.0.0。
UFW 状态为非活动状态。
在服务器上,运行:
mysql -u remote-user -p -h MY_EXTERNAL_IP
作品!但这对我的客户不起作用,我得到:
`ERROR 2003 (HY000): Can't connect to MySQL server on 'MY_EXTERNAL_IP' (111)`
我创建了我当前的 MySQL 用户:
GRANT USAGE ON *.* TO 'remote-user'@'localhost' IDENTIFIED BY 'password';
GRANT USAGE ON *.* TO 'remote-user'@'%' IDENTIFIED BY 'password';
我什至跑了:
sudo iptables -P INPUT ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
sudo iptables -I INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
Telnet 无法连接:
echo X | telnet -e X MY_EXTERNAL_IP 3306
telnet: Unable to connect to remote host: Connection refused
但它确实连接到 ssh 端口:
Trying 54.221.103.104...
Connected to 54.221.103.104.
并netstat -a | grep 'mysql'
给出:
tcp 0 0 *:mysql *:* LISTEN
unix 2 [ ACC ] STREAM LISTENING 20762 /var/run/mysqld/mysqld.sock
拜托,我已经无计可施了。我只是无法弄清楚这有什么问题,我已经研究了几个小时。