MySQL時區(qū)查看及設置全過程
說明
在服務器環(huán)境下(linux 或 docker),有時系統(tǒng)時區(qū)默認是 UTC 時區(qū),這時需要格外注意下應用使用的時區(qū)信息。
若查詢條件中含有 Now()/sysdate(),則會按 mysql 的時區(qū)信息查詢,造成時間錯亂。
可以使用 select now(); 來檢查 mysql 的當前時間是否準確。
查看數(shù)據(jù)庫獲取的當前時間語句:
select SYSDATE(); select now();
查看時區(qū)
show variables like '%time_zone%';
看到MySQL 服務器使用操作系統(tǒng)的時區(qū)設置,系統(tǒng)使用了CST時區(qū)
Time zone: Asia/Shanghai (CST, +0800):
中國標準時間:China Standard Time UT+8:00
[root@hcss-ecs-3983 ~]# timedatectl Local time: Sun 2024-07-28 14:43:17 CST Universal time: Sun 2024-07-28 06:43:17 UTC RTC time: Sun 2024-07-28 06:43:15 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a [root@hcss-ecs-3983 ~]# date Sun Jul 28 14:46:38 CST 2024
Java程序MySQL鏈接url配置
url: jdbc:mysql://127.0.0.1:3306/mydata?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
修改MySQL的時區(qū)
可以使用以下命令修改數(shù)據(jù)庫的時區(qū)
SET GLOBAL time_zone = 'Asia/Shanghai'; SET time_zone = 'Asia/Shanghai';
也可以修改my.cnf配置文件修改,添加一行,重啟MySQL服務生效
default-time-zone=Asia/Shanghai
docker容器使用宿主機時區(qū)
命令格式:
docker exec your_container_name ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
通過容器名去修改,示例如下:
[root@hcss-ecs-3983 ~]# history | grep timezone 1299 2024-07-14 13:43:34 root docker exec mysql ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone 2159 2024-07-28 15:00:25 root history | grep timezone [root@hcss-ecs-3983 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 577359655a60 redis:6.0.6 "docker-entrypoint.s…" 5 weeks ago Up 2 weeks 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp myredis 920994cf01b0 mysql:8.0.30 "docker-entrypoint.s…" 7 weeks ago Up 3 days 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
修改后,容器的時間:
bash-4.4# date Sun Jul 28 15:01:50 CST 2024 bash-4.4#
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MySQL查詢和篩選存儲的JSON數(shù)據(jù)的操作方法
MySQL是常用的關系型數(shù)據(jù)庫管理系統(tǒng),為了支持非結構化數(shù)據(jù)的存儲和查詢,MySQL引入了對JSON數(shù)據(jù)類型的支持,JSON是一種輕量級的數(shù)據(jù)交換格式,在現(xiàn)代應用程序中得到了廣泛應用,處理和存儲非結構化數(shù)據(jù)變得越來越重要,本文給大家介紹mysql查詢JSON數(shù)據(jù)的相關知識,一起看看吧2024-01-01MySQL轉(zhuǎn)換Oracle的需要注意的七個事項
有很多應用項目, 剛起步的時候用MySQL數(shù)據(jù)庫基本上能實現(xiàn)各種功能需求,隨著應用用戶的增多,數(shù)據(jù)量的增加,MySQL漸漸地出現(xiàn)不堪重負的情況:連接很慢甚至宕機,于是就有MySQL轉(zhuǎn)換Oracle的需求,應用程序也要相應做一些修改。2010-12-12MySQL約束之默認約束default與零填充約束zerofill
這篇文章主要介紹了MySQL約束之默認約束default與零填充約束zerofill,MySQL?默認值約束用來指定某列的默認值。更多相關資料需要的朋友可以參考一下2022-07-07MySQL對小數(shù)進行四舍五入的操作實現(xiàn)
數(shù)學函數(shù)是MySQL中常用的一類函數(shù),其主要用于處理數(shù)字,包括整型和浮點數(shù)等等,本文主要介紹了MySQL對小數(shù)進行四舍五入的操作實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-08-08