關於MySQL 5.6 中文亂碼的問題(尤其是windows的gbk編碼)


一般MySQL 數據庫亂碼由以下幾種情況造成(按照順序):
1. 創建數據庫的時候沒設置編碼,解決辦法: 就是在創建數據庫的時候設置編碼, 例如: CREATE DATABASE `mydb` CHARACTER SET utf8 COLLATE utf8_general_ci;

2. 創建數據表的時候沒設置數據庫引擎編碼, 解決辦法:CREATE TABLE `tb_album` (`id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL DEFAULT '', PRIMARY KEY (`id`))ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.MySQL導入.sql文件的時候,由於編碼問題,導致中文亂碼,首先進入數據庫 mysql -u root -p 然后輸入密碼進入, 然后輸入命令查看編碼show variables like 'char%';

你會發現很多編碼默認都是gbk,而且character_set_server(這個就是導入.sql文件的時候導致亂碼的原因)的編碼默認是latin1,
其他的都可以在mysql控制台通過命令 set  xxx = utf8;  修改編碼(永久修改),
唯獨character_set_server不行,退出之后再登錄還是latin1,

解決辦法:找到MySQL安裝目錄下的my.ini,設置default-character-set=utf8  和 character_set_server=utf8
如果你的MySQL是免安裝版,那么是沒有my.ini的,安裝目錄下只有my-default.ini文件,而且打開也沒有character-set-server,
先把my-default.ini拷貝一份,並重命名為my.ini,這樣該目錄下就有了my.ini和my-default.ini兩個ini文件
然后打開my.ini加上以下三行代碼
[client]  
default-character-set=utf8  
/[mysqld]/  
character-set-server=utf8  

具體位置如下:

然后重新啟動MYSQL服務就發現character-set-server已經不再是latin1了:

如果你的MySQL是安裝版本,那就找到my.ini,設置default-character-set=utf8 和 character-set-server=utf8,重啟MySQL服務即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM