天天看點

MySQL設定字元編碼

前言

  這裡我已經将MySQL的資料庫編碼設定為UTF-8,是以下面現實的都是UTF-8。

  設定MySQL資料庫的編碼方式有三種,分别是基于session會話的、基于全局gloable的、永久性改變的。

正文

1.首先連接配接到MySQL : mysql -uroot -proot

2.輸入\s,即可檢視資料庫的字元編碼

MySQL設定字元編碼

3.檢視資料庫的詳細編碼

  輸入:show variables like '%char%';

MySQL設定字元編碼

4.建立一個資料庫檢視資料庫編碼

  create database test1;

  show create database test1;

MySQL設定字元編碼

5.設定目前視窗的資料庫字元編碼,即使基于會話session級别的,關閉此視窗,重新打開另外的視窗操作資料庫依然是原來的字元編碼

  這裡将utf-8設定為gbk:

  set character_set_database=gbk;

  set character_set_server=gbk;

    show variables like '%char%';

MySQL設定字元編碼

  我們發現database和server都變成了gbk,然後我們再重新建立一個資料庫,檢視其編碼,

  create dabase test2;

  show create dabase test2;

MySQL設定字元編碼

  我們發現資料庫編碼已經變為gbk了。

  但是我們将此視窗關閉後,重新打開一個新的視窗來連接配接資料庫,重新檢視資料庫的編碼,發現不是我們剛剛修改的gbk了,還是原來的utf-8。如圖:

MySQL設定字元編碼

  因為是基于會話級别的改變編碼的方式,當重新建立一個視窗連接配接的時候,會話已經改變,是以變為了原來的字元編碼。

6.設定全局的資料庫字元編碼,即使基于整個MySQL服務的,當重新開機MySQL服務的時候,編碼依然會變為原來的字元編碼

  set global character_set_database=gbk;

  set global character_ser_server=gbk;

  show variables like '%char%';

MySQL設定字元編碼

  我們發現資料庫的編碼沒有修改成功,還是原來的utf-8。但是當我們重新建立資料庫或者重新建立表的時候,編碼就會是我們所期望的gbk了。

  在本視窗的建立資料庫是肯定可以的,session級别的都可以,全局的肯定ok的。重點是在另一個視窗中的編碼現實的是什麼,下面我們複制一個視窗,建立資料庫,來檢視資料庫和表的編碼

  create database test3;

MySQL設定字元編碼

  我們發現這是沒有問題的。

  但是我們重新開機MySQL資料庫的時候,編碼又是回複為原來的utf-8了。

7.設定永久的字元編碼,即需要在配置檔案中修改資料庫的字元編碼

  編輯 /etc/my.cnf,

    在裡面加入,已經有[XXX]的,在裡面直接加入即可。 

    [mysqld]

    character-set-server=utf8 

    [client]

default-character-set=utf8 

    [mysql]

    default-character-set=utf8

  然後重新開機資料庫即可,service mysql restart.