保持连接 - mysql

Keeping connection alive - mysql

我已经设置了我使用名为 Connect 的按钮创建的 delphi 应用程序。 单击它后,它会执行以下代码:

begin
    someConnection.Connected:=true;
    somecomenziDataSet.Active:=true;
end;

同样,我有一个用于 Disconnect 目的的按钮,它做同样的事情,但 =false;

我的问题是我要连接的数据库托管在共享主机帐户上,mysql 服务器的 wait_timeout 变量设置为 60 秒,interactive_timeout 设置为30秒。 如果我 60 秒不使用我的应用程序,这自然会断开连接。

有什么方法可以保持这种连接吗?

托管公司不会更改设置,所以我坚持使用它。

我正在使用 RAD Studio 10 Seattle,dbexpress 个组件,TSQLConnection,我的数据库是 mysql

如果我遗漏了任何必要的信息,请在评论中告诉我,谢谢!

您可以使用 TTimer 定期 "ping" 数据库(例如,给定 60 秒超时,间隔 10-20 秒):

procedure TMyDataModule.ConnectionPingTimer(Sender: TObject);
begin
  if not MySQLConnection.InTransaction then
    MySQLConnection.Execute('DO 0', nil); // or "SELECT 1" or whatever is cheapest
end;