【发布时间】:2016-06-15 02:48:09
【问题描述】:
我知道有几个线程与此有关,但我已经尝试了所有方法并且我无能为力 - 我只想能够连接到托管在 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 ACCEPTsudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPTsudo iptables -I INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT -
Telnet 无法连接:
echo X | telnet -e X MY_EXTERNAL_IP 3306telnet: 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
拜托,我已经无计可施了。我就是不知道这有什么问题,我已经研究了好几个小时了。
【问题讨论】:
-
我可以通过 telnet 连接到 54.221.103.104 的 3306 端口吗?你怎么不是?
-
糟糕,忘记删除 IP,但我不在乎。谢谢-也许我的本地网络正在阻止传出端口或其他什么。
-
看起来你做的一切都是对的。我会查看您的本地网络,看看它是否阻塞了传出端口。您也可以通过 SSH 隧道连接
标签: mysql networking ubuntu amazon-ec2 port