您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關MYSQL及PostgreSQL時區問題是怎么樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
有時候使用一樣東西用習慣了,就不大會多想,而出現問題的時候也不會想到那里去。所以MYSQL 的時間這個問題可能就屬于這個list.
時區的設置有哪些問題
1 跨地域的公司
如果是跨時區地域的公司,同一條記錄的傳遞,對于時間的表述就會有以下的疑問
1.1 我是用我本地的時間來表達,還是用數據來源的地方的時間來表達
1.2 我的數據如果遷移到其他的地域的服務器,時間能變化嗎?
我們比較少考慮這樣的問題是因為我們的公司的業務,可能只在同一個時間的地域,所以這樣的問題比較少考慮,如果是北京和烏魯木齊,這樣的跨地域的公司,我想他們是應該考慮這樣的問題。
我們來做一個實驗
服務器1 表示在北京 UTC + 8
服務器2 表示在斯德哥爾摩 UTC + 2
我們在服務器上建立復制關系,中國為主服務器,從庫是在斯德哥爾摩
在建立表中需要注意兩點
1 你需要時間是否必須是你服務器所在的時間
2 你的時間是否需要隨著不同的時區改變而改變
CREATE TABLE `titles` (
`emp_no` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(50) NOT NULL,
`from_date` datetime DEFAULT NULL,
`to_date` datetime DEFAULT NULL,
`time_s` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`emp_no`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4
我們插入幾條數據看看會怎么樣
主庫
從庫
從庫的時間
1 datetime類型的日期,輸入的數據不會變動
2 timestamp 的日期類型隨著不同的服務器的時區而進行時間的變動
另在使用JAVA 的時候,如果服務器是 CST,在使用JAVA JDBC 進行時間插入的時候,會出現問題,這本身是JAVA 的問題和MYSQL 以及LINUX 服務器的CST 是無關的。需要在JAVA中進行配置來避免問題。
同時一般來說MYSQL 基本上都是 time_zone 都是 system ,MySQL服務器的時區設置為system,那么操作系統時間將影響MySQL服務器使用的時間值。確保您的操作系統正在使用最新的時區信息。MYSQL的時間本身也是要和服務器時間是一致的,但如果有特殊的需求,也是可以強制time_zone 的。
命令
set global time_zone = '+08:00';
可以動態的設置MYSQL 自身的時間
或者直接在MY.CNF 中進行設置
default-time_zone = '+8:00'
然后重新啟動服務器
重點到不是設置不設置,而是你的服務器要統一。
postgresql 進行時區的調整和查看
1 查看當前的服務器的設置
2 查看當前POSTGRESQL 支持的時區,我們選擇上海
3 設置當前的時區
4 但設置后關閉 PSQL 后設置會失效,所以會進行系統設置,需要設置PRC
5 修改后重啟動 POSTGRESQL ,時間的TIME ZONE 已經更改
看完上述內容,你們對MYSQL及PostgreSQL時區問題是怎么樣的有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。