我在 AWS EC2 实例(t2.micro、ubuntu、免费套餐)上托管了一个 MySQL DB。我能够连接到它并存储数据。但大多数时候,我无法通过工作台或我的应用程序连接到它。但我的配置是正确的,因为我有时能够连接到它并存储值。工作台抛出以下错误:在“读取初始通信数据包”时与 MySQL 服务器失去连接,系统错误:104。
该应用程序抛出 ETIMEDOUT 错误。
这里出了什么问题?我也检查了 Cloudwatch 指标,但也没有关于 CPU 信用不足的警告。这个问题已经持续了好几天(在此期间我可以随机连接到数据库)。而且任何地方都找不到关于它的有用信息。
我正在尝试通过本地机器进行连接。该应用程序托管在 Vercel 中。
答案1
由于 EC2 服务器提供的信息有限,
观察结果显示,实例正常运行时间内,连接数为 895,中止连接数为 357。
为了尝试减少连接失败,请考虑您的 EC2 参数组,
net_read_timeout=60 # from 30 seconds for more patience to complete task
connect_timeout=30 # from 10 seconds for more patience to complete task
mysqlx_read_timeout-60 # from 30 seconds just in case.
我们不知道的事情可能会影响您的时间安排、您的 EC2 运行的可用区域以及您的物理区域是什么? 如果涉及副本,副本的可用区域在哪里?
这些建议适用于您的 EC2 实例。
祝你好运,如需更多帮助,请查看个人资料以获取联系信息和免费实用脚本,以提高服务器查询完成速度。