我试图在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上的数据库,这没有用。
我在这里想念东西吗?
谢谢!
答案 0 :(得分:0)
我建议您检查以下步骤:始终从内到外
SELECT User, Host, Password FROM mysql.user;
您可以使用telnet(telnet host 3306
)轻松进行测试,也可以使用nmap查找打开的端口。始终从关闭点开始,然后逐步消失。
同样,最好使用mysql客户端对其进行测试。
此外,在发布mysql管理端口之前,请查看由此产生的安全性问题。您肯定会受到暴力攻击,因此,至少添加一条防火墙规则,将其访问限制为仅对您的IP地址或其他IPS方法进行限制