[FireDAC][Phys][MySQL] MySQL server has gone away

Posted 咏南中间件和开发框架

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[FireDAC][Phys][MySQL] MySQL server has gone away相关的知识,希望对你有一定的参考价值。

[FireDAC][Phys][mysql]  MySQL server has gone away

原因:

MYSQL等其它数据库,其本质上还是SOCKET服务端。

作为网络通信服务端都有一个机制——会定时主动踢掉长时间不活跃的SOCKET客户端连接,定时踢掉僵尸连接,有利于服务端保持稳定和高效率服务。

ORACLE、MYSQL、MSSQL。。。等其他长连接的SOCKET服务端都有如此机制,这是一种常用的作法。

MySQL server has gone away——告诉客户端,我(MYSQL数据库)已经把你踢掉了。

解决办法:

1)在MYSQL数据库端设置,将这个允许“占哒茅坑不拉翔”的时间设得更长一些。

2)在数据库中间件的连接池里将超过规定时间的连接,自动重连数据库。

以上是关于[FireDAC][Phys][MySQL] MySQL server has gone away的主要内容,如果未能解决你的问题,请参考以下文章

FDLocalSQL

将记录从一个 db 迁移到 mysql 使用 Delphi 和 Firedac 非常慢

Delphi Firedac 在 docker 容器中连接到 MySQL

delphi7能用firedac吗

关于DBX Framewrok 和 FireDac 的一点随笔

为啥我无法从 fireac 打开我的 sqlite 数据库?