一.檢視資料庫時區
show variables like'%time_zone';
mysql> show variables like "%time_zone";+------------------+--------+
| variable_name | value |
| system_time_zone | cest |
| time_zone | system |
1.全域性引數system_time_zone
系統時區,在mysql啟動時會檢查當前系統的時區並根據系統時區設定全域性引數system_time_zone的值。
system_time_zone的值根據當前系統的不同會有所不同,此處測試時系統時間為cest時間,所以值為cest
檢視當前的作業系統的時區
## 使用date命令
date+"%z %z" //檢視當前作業系統的時區date-r
[vagrant@localhost ~]$ date -r
wed,17 jun 2020 10:48:14 +0200[vagrant@localhost~]$ date +"%z %z"cest+0200
cest表示在mysql啟動時,系統的時間為cest
cest為歐洲中部夏令時間,英文全名: central european summer time
2.全域性引數time_zone
用來設定每個連線會話的時區,預設為system時,使用全域性引數system_time_zone的值。我們需要修改的就是time_zone的值
system 表示time_zone預設使用system_time_zone的時區,此處即cest
個人思路
因為my.cnf中預設沒有設定default-time_zone,所以time_zone預設為system,即system_time_zone的值,
而system_time_zone的值為mysql啟動時的作業系統的時區,所以個人認為可以通過提前設定作業系統的時區來決定mysql的時區
二.設定資料庫時區
1.通過mysql命令列模式下動態修改,這種修改只在當前的mysql啟動狀態生效,如果mysql重啟,則恢復到my.ini的設定狀態
set global time_zone = '+8:00';
flush privileges;
再檢視mysql的時區設定如下(需要退出mysql後,再重新登陸mysql,否則time_zone的結果可能不變,仍為system)
mysql> show variables like "%time_zone";+------------------+--------+
| variable_name | value |
| system_time_zone | cest |
| time_zone | +08:00 |
2.通過修改配置檔案來修改時區,這種修改永久生效,即使mysql重啟也一樣有效
windows系統中配置檔案為my.ini。linux系統中配置檔案為/etc/my.cnf
在[mysqld]的下面新增或者修改如下內容
default-time_zone = '+8:00'
修改完配置檔案後需要重啟mysql伺服器,
linux系統中伺服器重啟命令如下
systemctl restart mysqld.service
my.cnf的修改後的內容如下所示
# for advice on how to change settings please see
# [mysqld]
# remove leading # andset to the amount of ram forthe most important data
# cachein mysql. start at 70% of total ram for dedicated server, else 10%.
# innodb_buffer_pool_size=128m
# remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# remove leading # toset options mainly useful forreporting servers.
# the server defaults are fasterfortransactions and fast selects.
# adjust sizesasneeded, experiment to find the optimal values.
# join_buffer_size=128m
# sort_buffer_size=2m
# read_rnd_buffer_size=2m
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sockdefault-time_zone = '+9:00'# disabling symbolic-links isrecommended to prevent assorted security risks
symbolic-links=0# recommendedinstandard mysql setup
sql_mode=no_engine_substitution,strict_trans_tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
mysql 時區設定 修改MySQL時區設定的方法
mysql 時區預設是伺服器的時區。檢視 複製 如下 mysql show variables like time zone variable name value system time zone cst time zone system 2 rows in set 0.00 sec 可以通過修改...
mysql設定儲存時區 MySQL 設定時區的影響
個人理解,mysql 設定時區的不同會影響日期相關函式的返回結果。對資料表裡的日期資料插入 查詢沒有影響,儲存的都是本地時間。舉例來說,對於 select now 如果 mysql 伺服器時區被設定為東五區,返回的就是東五區的時間,而不是東八區的時間。對於 select unix timestamp...
mysql 時區設定 設定MySQL預設時區
mysql預設的時區是utc時區,比北京時間晚8個小時。假設日誌裡面的時間是中午12 00,那麼北京時間應該是晚上的8 00點鐘。為方便檢視和設定時間,我們要設定mysql的預設時區,以符合本地使用。1 永久有效方法 修改my.cnf檔案,加入如下2行 default time zone 08 00...