MySQL之修改時區

查看時間相關語句

1.獲取當前數據庫時間

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2020-02-15 11:41:04 |
+---------------------+

2.查看時區

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | SYSTEM |
+------------------+--------+
  • system_time_zone:表示當前操作系統使用的時區。
  • time_zone:表示當前數據庫使用的時區。SYSTEM表示採用的是操作系統的時區。也就是說,如果在連接時沒有設置時區信息,就會採用這個時區配置。

修改時區

1.mysql控制檯修改
注:使用"Asia/Shanghai"需要數據庫導入timezone的表,後面會介紹。

# 僅修改當前會話的時區,停止會話失效
set time_zone = '+8:00';
 
# 修改全局的時區配置

set global time_zone = '+8:00';
#或者set global time_zone ="Asia/Shanghai";

#刷新MySQL的系統權限相關表
flush privileges;

2.修改配置文件
也可以通過修改配置文件來實現,不過需要重啓服務。
windows:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
linux:/etc/my.cnf

#[mysqld]下添加下面屬性,然後重啓mysql

default_time_zone = "+8:00"
#或者default-time-zone="Asia/Shanghai"

4.問題

個人解決過程中遇到的問題總結!

4.1"Asia/Shanghai"

標準時+8在某些情況會遇上奇奇怪怪的問題,推薦設置爲亞洲/上海時區。但是一般安裝的數據庫是沒有timezone的表的,設置的時候會出現Unknown or incorrect time zone: 'Asia/Shanghai’錯誤。

mysql> set global time_zone='Asia/Shanghai';
1298 - Unknown or incorrect time zone: 'Asia/Shanghai'

這時需要我們去官網下載對應版本的timezone表。MySQL下載posix標準表!
mysql5.6及以下版本下載上面的。mysql5.7以上版本下載下面的。

文件解壓後會得到一個sql文件,導入到mysql

use mysql;
source 路徑\timezone_posix.sql

4.2Windows版MySQL

mysql重啓指令

net stop mysql
net start mysql

mysql環境

添加安裝mysql的bin路徑到系統環境變量Path
C:\Program Files\MySQL\MySQL Server 8.0\bin

mysql服務名無效

C:\Users\sasu005>net stop mysql
服務名無效。

在系統-服務找到服務名爲:MySQL80

mysql服務拒絕訪問

C:\Users\sasu005>net stop MySQL80
發生系統錯誤 5。

拒絕訪問。

使用管理員權限打開命令行

mysql字符編碼設置

修改配置文件,然後重啓

# [client]  下添加
default-character-set=utf8  

# [mysqld] 下添加  
character-set-server=utf8  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章