[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的主要内容,如果未能解决你的问题,请参考以下文章
将记录从一个 db 迁移到 mysql 使用 Delphi 和 Firedac 非常慢
Delphi Firedac 在 docker 容器中连接到 MySQL