无法在AWS EC2实例上远程访问MySql docker映像

时间:2020-11-07 17:50:58

标签: mysql amazon-web-services docker amazon-ec2

我试图在EC2实例上运行连接到mysql db的node / express API,但是我已经坚持了好几个星期,希望能得到帮助。

我像这样在我的EC2实例上拉了Mysql的docker镜像:

sudo docker run --detach --env="MYSQL_ROOT_PASSWORD=mypassword" mysql

我得到了这个回应:

[System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.22' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.

我还在AWS控制台的安全组中添加了TCP / port:3306。

然后,我尝试使用实例的IPv4作为主机,将“ root”作为用户名和端口3306连接到Sequel Pro上的数据库,这没有用。

我在这里想念东西吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我建议您检查以下步骤:始终从内到外

  • 数据库是否允许来自公共IP的连接?请参阅在主机中使用%。
SELECT User, Host, Password FROM mysql.user;
  • 您是否正在docker中发布端口3306
  • 您是否正在实例中发布端口3306

您可以使用telnet(telnet host 3306)轻松进行测试,也可以使用nmap查找打开的端口。始终从关闭点开始,然后逐步消失。 同样,最好使用mysql客户端对其进行测试。

此外,在发布mysql管理端口之前,请查看由此产生的安全性问题。您肯定会受到暴力攻击,因此,至少添加一条防火墙规则,将其访问限制为仅对您的IP地址或其他IPS方法进行限制