首页 > 解决方案 > 远程 MySQL 服务器没有响应

问题描述

我在连接到持有 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

这是我netstat -tuplen在包含 MySQL 服务器的 EC2 服务器上的

tcp 0 0 0.0.0.0:3306 0.0.0.0:* 听 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 上。

标签: phpmysqlamazon-web-servicesamazon-ec2

解决方案


尝试将以下 GRANT 添加到您的用户:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'ipadress'

推荐阅读