現(xiàn)象
發(fā)現(xiàn)mysql語(yǔ)句比較日期時(shí)候,凌晨被當(dāng)作下一天
分析
mysql 服務(wù)器時(shí)區(qū)按初始設(shè)置是使用系統(tǒng)時(shí)區(qū),而由于mysql安裝于docker,docker容器的時(shí)區(qū)默認(rèn)為+0:00時(shí)區(qū)。
處理
修改mysql服務(wù)時(shí)區(qū)
1 select now(); 查看現(xiàn)在的時(shí)間,可以見到跟實(shí)際時(shí)間差8小時(shí)
2?show variables like "%time_zone%"; 可以看到時(shí)區(qū)設(shè)置,可以看到是使用SYSTEM時(shí)間
3?set global time_zone = '+8:00'; 修改mysql全局時(shí)區(qū)為北京時(shí)間,即我們所在的東8區(qū)
4 set time_zone = '+8:00'; 修改當(dāng)前會(huì)話時(shí)區(qū)
5 flush privileges; 立即生效
6 重新查看時(shí)間和時(shí)區(qū)設(shè)置,可看到已正常