1. 程式人生 > 實用技巧 >108.linux伺服器時區問題,導致資料庫和django專案不能啟動

108.linux伺服器時區問題,導致資料庫和django專案不能啟動

1.linux伺服器時區問題:

# 當出現如上錯誤的時候,我執行如下命令之後發現,發現莫名其妙出來一個軟連線從UTC只想了/usr/share/zoneinfo/Asia/Shanghai這個路徑,而且整個軟連線是紅色的,說明根本沒有原始檔麼/usr/share/zoneinfo/Asia/Shanghai
[root@localhost zoneinfo]# pwd
/usr/share/zoneinfo
[root@localhost zoneinfo]# 
[root@localhost zoneinfo]# ll |grep UTC
-rw-r--r--  8 root root    118 Sep 26  2019 UTC -> /usr/share/zoneinfo/Asia/Shanghai

# 但是當我執行如下命令的收,更奇葩的事情出現了,自己指向自己的一個軟連線,同樣是紅色的這不是扯淡麼,我直接把這個檔案給刪除了,然後從其他的伺服器直接scp傳過來一個就好了,發現專案可以啟動了,但是mysql資料庫訪問不了
[root@localhost zoneinfo]# ll Asia/Shanghai 
-rw-r--r-- 5 root root 528 Sep 26  2019 Asia/Shanghai -> /usr/share/zoneinfo/Asia/Shanghai

# 執行如下命令,檢視伺服器的時間,發現local time竟然和Universal time一樣,這不是扯淡麼,我在北京伺服器也在北京,資料庫用的也是北京時間,你給我來個UTC時間,資料庫發現儲存的資料各種時間都對不上了,就訪問不了了
[root@localhost zoneinfo]# timedatectl status
      Local time: Mon 2020-10-26 05:48:54 UTC  # 這裡出問題了
  Universal time: Mon 2020-10-26 05:48:54 UTC
        RTC time: Mon 2020-10-26 05:48:54
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: n/a
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

2.linux伺服器時區調整:

linux 使用timedatectl 修改時區和時間
使用timedatectl可以進行如下常見操作
https://www.cnblogs.com/zhi-leaf/p/6282301.html  # 如果知道如下命令直接用,不明白看這個部落格
    
1.檢視當前時間/日期/時區:timedatectl或者timedatectl status 
2.檢視所有可用時區:timedatectl list-timezones
3.設定時區:timedatectl set-timezone “Asia/Shanghai”   或者  timedatectl set-timezone PRC  # 時區打錯會報錯,invalid XXX的一個錯誤
4.設定時間:timedatectl set-time HH:MM:SS # 設定Linux中的時間。只設置時間的話,我們可以使用set-time開關以及HH:MM:SS(小時,分,秒)的時間格式。timedatectl set-time 15:58:30
5.設定日期:timedatectl set-time YYYY-MM-DD # 在Linux中設定日期。只設置日期的話,我們可以使用set-time開關以及YY:MM:DD(年,月,日)的日期格式。timedatectl set-time 2015-11-20
6.設定日期時間:timedatectl set-time “YYYY-MM-DD HH:MM:SS” #設定完整時間 timedatectl set-time '16:10:40 2015-11-20'
7.設定硬體時鐘為本地時間:timedatectl set-local-rtc 1  # 將你的硬體時鐘設定為本地時區
[root@localhost zoneinfo]# timedatectl |grep local
 RTC in local TZ:yesno

8.設定硬體時鐘為UTC時間:timedatectl set-local-rtc 0  # 將你的硬體時鐘設定為協調世界時(UTC)
[root@localhost zoneinfo]# timedatectl |grep local
 RTC in local TZ: no

9.啟動NTP時間同步(啟用NTP服務或者Chrony服務):timedatectl set-ntp true
10.禁用NTP時間同步:timedatectl set-ntp false