1. 程式人生 > >[FireDAC][Phys][MySQL] MySQL server has gone away

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

數據庫 服務 網絡通 服務端 soc fire l數據庫 。。 nbsp

[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