Mysql 字符集的設置和修改

Show variables like ‘character%’; //顯示目前mysql默認 字符集

顯示數據連接字符集

修改字符集

D:\mysql>Net stop mysql //停止MYSQL

方法:修改my.ini

在安裝文件夾中把my-dafault.ini改成my.ini

[mysqld]

port=3306

Character_set_server = utf8
修改完後,重啓mysql的服務

Show variables like ‘character%’; //顯示目前mysql默認 字符集

還有一種修改mysql默認字符集的方法,就是使用mysql的命令

mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;

mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
一般就算設置了表的mysql默認字符集爲utf8並且通過UTF-8編碼發送查詢,你會發現存入數據庫的仍然是亂碼。問題就出在這個connection連接層上。解決方法是在發送查詢前執行一下下面這句:

SET NAMES ‘utf8’;
它相當於下面的三句指令:

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
修改已有表的字符集爲utf8

alter table t_user_friend convert to character set utf8;

修改數據庫字符集:

ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE …];

把表默認的字符集和所有字符列(CHAR,VARCHAR,TEXT)改爲新的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE …]

如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

只是修改表的默認字符集:

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE…];

如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

修改字段的字符集:
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE …];

如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

查看數據庫編碼:SHOW CREATE DATABASE db_name;

查看錶編碼:SHOW CREATE TABLE tbl_name;

查看字段編碼:SHOW FULL COLUMNS FROM tbl_name;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章