MySQL時(shí)區(qū)查看及設(shè)置全過程
說明
在服務(wù)器環(huán)境下(linux 或 docker),有時(shí)系統(tǒng)時(shí)區(qū)默認(rèn)是 UTC 時(shí)區(qū),這時(shí)需要格外注意下應(yīng)用使用的時(shí)區(qū)信息。
若查詢條件中含有 Now()/sysdate(),則會(huì)按 mysql 的時(shí)區(qū)信息查詢,造成時(shí)間錯(cuò)亂。
可以使用 select now(); 來檢查 mysql 的當(dāng)前時(shí)間是否準(zhǔn)確。
查看數(shù)據(jù)庫獲取的當(dāng)前時(shí)間語句:
select SYSDATE(); select now();
查看時(shí)區(qū)
show variables like '%time_zone%';
看到MySQL 服務(wù)器使用操作系統(tǒng)的時(shí)區(qū)設(shè)置,系統(tǒng)使用了CST時(shí)區(qū)
Time zone: Asia/Shanghai (CST, +0800):
中國標(biāo)準(zhǔn)時(shí)間: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的時(shí)區(qū)
可以使用以下命令修改數(shù)據(jù)庫的時(shí)區(qū)
SET GLOBAL time_zone = 'Asia/Shanghai'; SET time_zone = 'Asia/Shanghai';
也可以修改my.cnf配置文件修改,添加一行,重啟MySQL服務(wù)生效
default-time-zone=Asia/Shanghai
docker容器使用宿主機(jī)時(shí)區(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
修改后,容器的時(shí)間:
bash-4.4# date Sun Jul 28 15:01:50 CST 2024 bash-4.4#
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL查詢和篩選存儲(chǔ)的JSON數(shù)據(jù)的操作方法
MySQL是常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),為了支持非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和查詢,MySQL引入了對JSON數(shù)據(jù)類型的支持,JSON是一種輕量級的數(shù)據(jù)交換格式,在現(xiàn)代應(yīng)用程序中得到了廣泛應(yīng)用,處理和存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)變得越來越重要,本文給大家介紹mysql查詢JSON數(shù)據(jù)的相關(guān)知識(shí),一起看看吧2024-01-01MySQL轉(zhuǎn)換Oracle的需要注意的七個(gè)事項(xiàng)
有很多應(yīng)用項(xiàng)目, 剛起步的時(shí)候用MySQL數(shù)據(jù)庫基本上能實(shí)現(xiàn)各種功能需求,隨著應(yīng)用用戶的增多,數(shù)據(jù)量的增加,MySQL漸漸地出現(xiàn)不堪重負(fù)的情況:連接很慢甚至宕機(jī),于是就有MySQL轉(zhuǎn)換Oracle的需求,應(yīng)用程序也要相應(yīng)做一些修改。2010-12-12MySQL約束之默認(rèn)約束default與零填充約束zerofill
這篇文章主要介紹了MySQL約束之默認(rèn)約束default與零填充約束zerofill,MySQL?默認(rèn)值約束用來指定某列的默認(rèn)值。更多相關(guān)資料需要的朋友可以參考一下2022-07-07MySQL對小數(shù)進(jìn)行四舍五入的操作實(shí)現(xiàn)
數(shù)學(xué)函數(shù)是MySQL中常用的一類函數(shù),其主要用于處理數(shù)字,包括整型和浮點(diǎn)數(shù)等等,本文主要介紹了MySQL對小數(shù)進(jìn)行四舍五入的操作實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08