FireDAC 在查询期间丢失与 MySQL 服务器的连接

FireDAC Lost connection to MySQL server during query

我的应用程序上有两个 FireDAC 连接,一个用于局域网上的 MySQL 服务器并存储我商店的私人数据(如销售、产品等),以及另一个连接到远程(互联网)MySQL 服务器,它随机给我一个异常

First chance exception at 5AA882. Exception class
EMySQLNativeException with message '[FireDAC][Phys][MySQL] Lost
connection to MySQL server during query'.

这是 FireDAC、我的代码或远程 MySQL 服务器的问题吗? 我用NAVICAT软件没问题。

这个错误通常是因为网络连接不稳定,在交换数据时连接关闭

有时您可以通过增加连接超时(和 ReadTimeOut)来解决这个问题

有时会出现此错误,因为您尝试发送或接收大量数据,如 Blob 字段,您应该增加 MySQL 服务器的 max_allowed_packet 变量来解决问题

解决此问题的下一个建议是通过将 skip-name-resolve 添加到 MySQL 服务器

的设置中来避免 dns 查找

这个问题的主要原因是连接稳定性和MySQL服务器设置

如果您可以访问 MySQL 服务器并且可以更改设置,这个 link 可能会有用:

http://www.monitis.com/blog/101-tips-to-mysql-tuning-and-optimization/

您可以找到很多关于提高 MySQL Server

性能的文章