mysql時區問題 伺服器與資料庫不同時區

2021-10-01 09:22:39 字數 1023 閱讀 1570

jdbc增加&usejdbccomplianttimezoneshift=true&uselegacydatetimecode=false&servertimezone=utc

mysql與tomcat時區不一致。

我嘗試設定連線url add

usetimezone = true& servertimezone = gmt
但不起作用

解決方案

usetimezone是一種較舊的解決方法。

mysql團隊最近重寫了settimestamp / gettimestamp**,但只有在設定連線引數uselegacydatetimecode = false並且使用最新版本的mysql jdbc聯結器時才會啟用它。例如:

uselegacydatetimecode = false

如果使用舊日期時間**= false,則呼叫newsettimestampinternal(…)。然後,如果傳遞給newsettimestampinternal的calendar為null,則日期物件的格式為資料庫的時區:

this.tsdf = new ******dateformat(』'yyyy-mm-dd hh:mm:ss」 ,locale.us);

this.tsdf.settimezone(this.connection.getservertimezonetz());

timestampstring = this.tsdf.format(x);

日曆為空是非常重要的 - 所以請確保你正在使用:

settimestamp(int,timestamp)。

…不是settimestamp (int,timestamp,calendar)。

要檢索日期,請使用gettimestamp(int)(不使用calendar)。它將再次使用資料庫時區來構建日期。

注意:現在,網路伺服器時區完全不相關!如果你不喜歡將uselegacydatetimecode設定為false,網路伺服器時區用於格式化 - 增加了許多混淆。

參考:

修改伺服器時區

方法一 tzselect 方法二 時區的配置檔案是 etc sysconfig clock 用tzselect 命令就可以修改這個配置檔案,根據命令的提示進行修改就好了。但是在實際工作中,發現這種方式是不能夠使得伺服器上的時間設定馬上生效的,而且使用 ntpdate 去同步時間伺服器也不能夠更改時間...

mysql伺服器拒絕鏈結 mysql伺服器拒絕連線

1 連線mysql伺服器報錯 通過 mysql hhost u user p 命令連線mysql伺服器時,報以下錯誤 error 1130 hy000 host hostname is not allowed to connect to this mysql server 2 原因 這是因為mysq...

mysql 伺服器 管理 MySQL伺服器元件

mysql伺服器元件 mysql server包括用於擴充套件伺服器功能的基於元件的基礎結構。元件提供伺服器和其他元件可用的服務。就服務使用而言,伺服器是乙個元件,與其他元件相同。元件僅通過它們提供的服務進行互動。mysql發行版包含幾個實現伺服器擴充套件的元件 用於配置錯誤日誌記錄的元件。請參見 ...