2015-09-22 39 views
1

我有一個項目,間歇地將用戶定義的值的time_zone值更改爲SYSTEM,並且我試圖確定MySQL是否考慮'當前會話'(MySQL TimeZone)連接,或者工作站IP連接來自於。MySQL time_zone'當前會話' - 是IP還是連接?

基本上,如果它不是每個連接,那麼其他連接到MySQL並將time_zone值更改回SYSTEM,這會對我已連接的軟件產生影響。

如果是每個連接,然後我回來試圖找出哪裏time_zone正在重置。

有關更多信息,我的項目是使用Delphi數據庫連接的MyDAC組件編寫的Delphi XE3。當項目加載時,我讀取連接文件,如果設置了time_zone字符串,則執行「Set Time_zone」查詢。連接在整個應用程序運行生命週期中保持活動狀態,並且對應用程序是全局的(即,我不創建/連接從此應用程序到數據庫的其他連接)。

感謝您的協助!

+0

會話是一個連接。 – Barmar

+0

您的會話是否長時間閒置?服務器可能會在超時後斷開連接,並且Delphi庫可能會自動重新連接。會話設置將在這種情況下丟失。 – Barmar

回答

1

MySQL會話對應一個連接。

根據系統變量wait_timeout(默認爲28800秒(8小時))的值,MySQL服務器在超時後自動斷開空閒會話。這聽起來像Delphi會自動重新連接你的會話,但是當這種情況發生時,每個會話的設置將會丟失。

您應該更改您的應用程序,以便發送時區設置,如果它長時間處於空閒狀態。您也可以增加wait_timeout(最大值爲2147483,24.85天)。

+0

謝謝,這就是我想的,只是想在我沒有做我的問題的代碼的兔子洞之前澄清它 - 我將不得不添加一些東西到MyDAC組件來檢測重新連接並重新發送time_zone信息 – ConBran

相關問題