久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Docker的MySQL容器時(shí)區(qū)問(wèn)題修改

瀏覽:130日期:2023-10-24 15:13:55

前言

阿航在開(kāi)發(fā)Springboot項(xiàng)目時(shí), 前端告訴驗(yàn)證碼一直無(wú)效. 本地測(cè)試沒(méi)有問(wèn)題, 一看遠(yuǎn)程服務(wù)器的數(shù)據(jù)庫(kù)時(shí)間, 哇塞?早了8小時(shí). 很明顯, 是MySQL的時(shí)區(qū)問(wèn)題. 本篇文章就來(lái)記錄下如何修改Docker 的 MySQL 容器時(shí)區(qū).

解決方案

先來(lái)校驗(yàn)下數(shù)據(jù)庫(kù)是否真的時(shí)區(qū)不對(duì). 進(jìn)入MySQL數(shù)據(jù)庫(kù), 運(yùn)行語(yǔ)句:

SELECT NOW();

會(huì)返回類似這樣的數(shù)據(jù):

mysql> SELECT NOW();+---------------------+| NOW() |+---------------------+| 2020-07-04 15:46:46 |+---------------------+1 row in set (0.09 sec)

再來(lái)查詢下當(dāng)前時(shí)區(qū), 輸入以下命令:

SHOW VARIABLES LIKE ’%time_zone%’;

會(huì)返回類似這樣的數(shù)據(jù):

mysql> SHOW VARIABLES LIKE ’%time_zone%’;+------------------+--------+| Variable_name | Value |+------------------+--------+| system_time_zone | UTC || time_zone | +00:00 |+------------------+--------+2 rows in set (0.12 sec)

如果返回的時(shí)間和你的相差多個(gè)小時(shí), 并且時(shí)區(qū)不對(duì)(非+08:00)的話, 那么證明你需要向下看了.

方法一: 臨時(shí)修改

當(dāng)我們的需求非常急的時(shí)候, 我們可以做此臨時(shí)修改. 運(yùn)行命令:

SET GLOBAL time_zone = ’+8:00’;

再次運(yùn)行以下命令, 校驗(yàn)返回結(jié)果是否為當(dāng)前時(shí)間:

SELECT NOW();

返回當(dāng)前時(shí)間則證明修改成功.

之所以本方法稱為”臨時(shí)修改”, 是因?yàn)橹貑ySQL后該修改會(huì)失效.

方法二: 啟動(dòng)時(shí)加參數(shù)

此方法適用于條件允許我們重新創(chuàng)建一個(gè)MySQL容器,

創(chuàng)建容器時(shí), 我們需要加上指定時(shí)區(qū)的命令(東八區(qū)是上海, 你可以按需修改為自己的時(shí)區(qū)):

-e TZ=Asia/Shanghai

所以, 我們的docker完整運(yùn)行命令應(yīng)該為(僅供參考, 你的運(yùn)行命令可能略有差異):

docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -e TZ=Asia/Shanghai -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0

要查看各個(gè)參數(shù)的用途, 請(qǐng)查看我的這篇文章: 《Docker 安裝 MySQL》.

方法三: 修改容器內(nèi)配置

輸入以下命令進(jìn)入mysql容器:

docker exec -it 容器ID bash

修改MySQL配置文件(兩種情況):

vim /etc/mysql/mysql.conf.d

或者

vim /etc/mysql/my.cnf

如果以上命令返回bash: vim: command not found, 請(qǐng)先閱讀Docker容器沒(méi)有vim命令的解決方案

進(jìn)入配置文件后, 點(diǎn)擊i進(jìn)入編輯模式, 添加一行配置文件:

default-time-zone = ’+08:00’

如圖:

Docker的MySQL容器時(shí)區(qū)問(wèn)題修改

添加配置文件

完成后, 點(diǎn)擊ESC, 輸入:wq進(jìn)行保存并退出.

再輸入exit退出docker容器.

接下來(lái)我們要重啟mysql容器, 輸入命令:

docker restart 容器ID

至此, 已經(jīng)成功修改了時(shí)區(qū)配置.

重啟后, 輸入以下命令驗(yàn)證是否成功:

SELECT NOW();

如果返回時(shí)間和當(dāng)前時(shí)間一致, 則證明修改成功.

結(jié)語(yǔ)

如果特別急, 推薦方法一. 不急則推薦方法二. 各位同學(xué)按需選擇使用.

到此這篇關(guān)于Docker的MySQL容器時(shí)區(qū)問(wèn)題修改的文章就介紹到這了,更多相關(guān)Docker MySQL容器時(shí)區(qū)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
主站蜘蛛池模板: 阳高县| 正镶白旗| 慈利县| 谢通门县| 磐安县| 肃宁县| 渭源县| 稻城县| 双峰县| 专栏| 南华县| 松江区| 久治县| 杨浦区| 自贡市| 黎城县| 玉环县| 泸定县| 武功县| 芜湖县| 石狮市| 德昌县| 阳高县| 修水县| 灵川县| 遂宁市| 乐业县| 汝南县| 绩溪县| 津市市| 宁阳县| 沁阳市| 乐陵市| 故城县| 洱源县| 满洲里市| 津南区| 华蓥市| 扎鲁特旗| 囊谦县| 辽源市|