我一直在为这个应用程序在本地和暂存数据库(托管在AWS上)上工作,在这两种环境下查看和播种数据都没有问题。但是,当我尝试连接到生产环境以查看或种子数据时,出现以下错误:
mysqli_real_connect():(HY000 / 2002):连接尝试失败,因为一段时间后连接方未正确响应,或者由于连接的主机未能响应而建立连接失败。
我已经仔细检查了我使用的凭据是否与生产环境的凭据匹配,并且我再次键入了凭据以确保不会意外复制空白字符。
我以为我可能在管理工具上遇到了问题,所以我从phpMyAdmin切换到了DBeaver,这似乎也不起作用。
禁用防火墙也无济于事。
在进行一些在线研究之后,我遵循了this guide来授权RDP通信到我计算机的公共IPv4地址,但是按照这些步骤进行操作之后,我仍然遇到上述错误。
我的phpMyAdmin配置文件如下
/*
* Production Server
*/
$i++;
$cfg['Servers'][$i]['host'] = 'host';
$cfg['Servers'][$i]['user'] = 'user';
$cfg['Servers'][$i]['password'] = 'password';
/*
* End of servers configuration
*/
?>
在服务器版本为MySQL 5.7.26-log的服务器上使用XAMPP v3.2.3并在AWS上运行的平台是在64位Amazon Linux / 2.8.12上运行的PHP 7.2。
我使用的是Windows 10计算机,我想指出我的同事在Mac上,并且在离我较远的位置连接到AWS实例没有任何问题。两位同事均未将其IPv4添加到安全组。
有人能指出我发生问题的正确方向吗?我为此感到难过...
答案 0 :(得分:0)
RDP和RDS完全不同。 RDP是远程桌面协议,因此是一种登录Windows计算机的方法。 RDS是AWSes托管的数据库服务,它使您可以连接到数据库类型(在这种情况下,我希望您选择了MySQL)。
如果要从本地PC连接到RDS,请确保已通过RDS使用的安全组中的tcp / 3306启用了来自公共IP的流量。
如果要从RDS连接到自己的本地MySQL实例,则可能需要在本地路由器上设置一个NAT,该NAT将从其公用ip和tcp / 3306映射到适当的专用ip和tcp / 3306但是如果这样做,确保仅限制来自适当源IP的传入流量非常重要。
顺便说一句,Mac上的人是否有可能通过SSH会话建立隧道以到达数据库?