1. 程式人生 > >[MySQL]變更資料庫字符集

[MySQL]變更資料庫字符集

my.cnf

  [mysqld]

  character-set-server=utf8

  [mysqld_safe]

  default-character-set=utf8

 

-- 建立資料庫時,設定資料庫的編碼方式 

-- CHARACTER SET:指定資料庫採用的字符集,utf8不能寫成utf-8

-- COLLATE:指定資料庫字符集的排序規則,utf8的預設排序規則為utf8_general_ci(通過show character set檢視)

  drop database if EXISTS dbtest;

  create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;

 

-- 修改資料庫編碼

  alter database dbtest CHARACTER SET GBK COLLATE gbk_chinese_ci;

  alter database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;

 

-- 建立表時,設定表、欄位編碼

  use dbtest;

  drop table if exists tbtest;

  create table tbtest(

  id int(10) auto_increment,

  user_name varchar(60) CHARACTER SET GBK COLLATE gbk_chinese_ci,

  email varchar(60),

  PRIMARY key(id)

  )CHARACTER SET utf8 COLLATE utf8_general_ci;

-- 修改表編碼

  alter table tbtest character set utf8 COLLATE utf8_general_ci;

-- 修改欄位編碼

  ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;

-- 檢視所有的字元編碼

  SHOW CHARACTER SET;

-- 檢視建立資料庫的指令並檢視資料庫使用的編碼

  show create database dbtest;

-- 檢視資料庫編碼:

  show variables like '%char%';

-- 設定character_set_server、set character_set_client和set character_set_results

  set character_set_server = utf8; -- 伺服器的預設字符集。使用這個語句可以修改成功,但重啟服務後會失效。根本的辦法是修改配置MYSQL檔案MY.INI,