php - 远程 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 上。
解决方案
尝试将以下 GRANT 添加到您的用户:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'ipadress'
推荐阅读
- python-3.x - impala.error.HiveServer2Error:重试 3 次后失败
- angular - 预提交挂钩中的 TSLint 因文件不存在而失败。如何解决这个问题?
- python - 我如何使用代理身份验证 Python Selenium?
- google-cloud-platform - 如何从 GCE vm 实例匿名发送 http 请求以防止验证码?
- php - 如何从模型传递值以选择输入使用 laravel eloquent
- spring-boot - Spring 中 Rabbit 的几个 queueNames
- html - Flex 列中的元素重叠
- reactjs - 如何将 jwt 令牌从 ReactNative 传递到 webview
- .net - XC1020:XAML MSBuild 任务中发生构建错误:“无法加载文件或程序集或其依赖项之一
- groovy - Groovy,如何从列表中获取唯一值?