[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,