我有一个运行在EC2示例上的mysql数据库(而不是使用RDS,因为RDS更便宜),我想用lambda函数连接到数据库,但总是得到(2003, "Can't connect to MySQL server on '<private ip address of ec2 instance>' ([Errno 111] Connection refused)")
我在同一个vpc中有lambda函数,它与EC2示例(默认vpc)有相同的子网,安全组允许所有端口上的所有流量。lambda函数在其权限中有完全的EC2访问权限。我可以验证mysql服务器是否已启动并运行,是否可以接受来自任何地方的连接。我完全不知道是什么原因导致了这个问题。作为参考,我使用pymysql进行连接:conn = pymysql.connect(host='<ec2 instance private ip address>', user='<user with all permissions>', passwd='<user password>', db='<database that exists in the mysql server>', connect_timeout=2)
1条答案
按热度按时间ulydmbyx1#
要允许AWS Lambda函数连接Amazon EC2示例上运行的MySQL数据库,请检查以下内容:
如果这不起作用,那么MySQL服务器可能没有“监听”来自示例外部的传入连接。您可以通过在同一VPC中启动另一个EC2示例并尝试连接到MySQL来测试这一点。