【发布时间】:2020-03-28 16:12:06
【问题描述】:
我在连接到我持有 MySQL 服务器的 AWS EC2 服务器时遇到问题。
这是我来自mysqli_connect的回复
p@xxx.com [~/app]# php checkmysqlremote.php
Error: Unable to connect to MySQL.
Debugging errno: 2002
Debugging error: Connection refused
这是我在包含 MySQL 服务器的 EC2 服务器上的netstat -tuplen
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 999 20299 1378/mysqld
您可以看到它正确绑定到0.0.0.0 地址。
我在 EC2 的入站规则中启用了 3306 port。
在进行请求握手的服务器上,我运行:
curl -s example.com:3306 >/dev/null && echo Success. || echo Fail.
导致Fail.
我也在本地服务器实例上运行它,它以 Success. 响应
我还在服务器上运行nmap 进行握手,
nmap -p 3306 example.com
Nmap scan report for example.com (1.1.1.1)
Host is up (0.048s latency).
PORT STATE SERVICE
3306/tcp filtered mysql
Nmap done: 1 IP address (1 host up) scanned in 2.03 seconds
最后,我尝试在 iptables 中添加以下规则:
iptables -A INPUT -i eth0 -s "example.com" -p tcp --destination-port 3306 -j ACCEPT
和
sudo iptables -I INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
我现在不知道该怎么办。
更新
我尝试从远程服务器 ping EC2 服务器,但它没有返回任何内容。在这一点上,我认为问题在于 EC2。
【问题讨论】:
-
Mysql 上的用户权限? SQL 服务器在哪里?
标签: php mysql amazon-web-services amazon-ec2