mysql> select * from employee;
| 14 | 王 | 彭給 | 1978-12-11 | f | aaa@asdf.com |
| 15 | 田 | 王光 | 1978-12-11 | f | aaa@asdf.com |
| 16 | 息 | 存入 | 1978-12-11 | f | aaa@asdf.com |
| 17 | 往 | 小杯 | 1978-12-11 | f | aaa@asdf.com |
+-------------+-----------+------------+------------+------+--------------+
可以高興得看到了中文,并且在瀏覽器中也顯示正確。
但是僅僅這樣的話,當你重新啟動mysql的時候
所有的設置又失效了。
mysql> show variables like '%character%';
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:/MySQL/MySQL Server 5.0/share/charsets/ |
+--------------------------+-------------------------------------------+
mysql> SHOW VARIABLES LIKE '%collation%' ;
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-------------------+
重新讀取又出現亂碼:
mysql> select * from employee;
+-------------+-----------+------------+------------+--
| employee_id | last_name | first_name | birth | s
+-------------+-----------+------------+------------+--
| 12 | ? | ?? | 1978-12-11 | f
| 13 | ? | ?? | 1978-12-11 | f
| 14 | ? | ?? | 1978-12-11 | f
| 15 | ? | ?? | 1978-12-11 | f
| 16 | ? | ?? | 1978-12-11 | f
| 17 | ? | ?? | 1978-12-11 | f
+-------------+-----------+------------+------------+--
所以我們需要在客戶端設置系統能識別中文的編碼gbk并沒有保存到my.ini文件中。所以要修改my.ini文件
在[mysql]段加入一下代碼改成:default-character-set=gbk 這樣設置就得到保存了。
重啟就可以了。
mysql> show variables like '%character%';
+--------------------------+----------------
| Variable_name | Value+--------------------------
+----------------| character_set_client | gbk
| character_set_connection | gbk
| character_set_database | utf8
| character_set_results | gbk
| character_set_server | utf8
| character_set_system | utf8
| character_sets_dir | C:/MySQL/MySQL
+--------------------------+----------------
mysql> SHOW VARIABLES LIKE '%collation%' ;
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | gbk_chinese_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
MySQL的默認編碼是Latin1,不支持中文,那么如何修改MySQL的默認編碼呢,下面以UTF-8為例來說明
需要注意的是,要修改的地方非常多,相應的修改方法也很多。下面是一種最簡單最徹底的方法:
一、Windows
1、中止MySQL服務
2、在MySQL的安裝目錄下找到my.ini,如果沒有就把my-medium.ini復制為一個my.ini即可
3、打開my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并關閉
4、啟動MySQL服務
二、Linux
1、中止MySQL服務(bin/mysqladmin -u root shutdown)
2、在/etc/下找到my.cnf,如果沒有就把MySQL的安裝目錄下的support-files目錄下的my-medium.cnf復制到/etc/下并改名為my.cnf即可
3、打開my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并關閉
4、啟動MySQL服務(bin/mysqld_safe &)
非常簡單,這樣的修改一勞永逸,今后MySQL一切相關的默認編碼均為UTF-8了,創建新表格的時候無需再次設置
需要注意的是,當前數據庫中已經存在的數據仍保留現有的編碼方式,因此需要自行轉碼,方法在網上有很多,不再贅述
原文轉自:http://blog.csdn.net/xyz_lmn/article/details/4170822