windows操作系統下mysql 導入.sql文件后數據庫中文亂碼問題


一、產生原因分析

 數據庫的編碼格式和導入的.sql數據格式不一致導致

列如:我的數據庫編碼格式為gbk,而導入的數據表格式為utf8,則導入的數據表后其中中文顯示為亂碼

二、解決方案

1.編輯windows下MySQL的安裝路徑下(我的 為C:\Program Files\MySQL\MySQL Server 5.5)my.ini文件,用記事本打開修改以下2處設置為utf8編碼格式:   

一處:  # CLIENT SECTION 下

default-character-set=utf8

二處: # SERVER SECTION 下

character-set-server=utf8

2.在windows的服務中重啟MySQL服務(我的win7按以下方式啟動無效,我在計算機管理下服務中重啟)

Windows可在服務管理器中操作,也可使用命令行:

net stop MySQL回車

net start MySQL 回車

服務名可能不一定為MySQL,請按自己的設置

3.查看MySQL的設置結果

mysql> show variables like '%character%';

顯示結果應該類似如下: 

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.5\share\chars

ets\ |

如果仍有編碼不是utf8的,請檢查配置文件,也可使用mysql命令設置:

set character_set_client = utf8;

set character_set_server = utf8;

set character_set_connection = utf8;

set character_set_database = utf8;

set character_set_results = utf8;

set collation_connection = utf8_general_ci;

set collation_database = utf8_general_ci;

set collation_server = utf8_general_ci;

 

另外: 

建立數據庫時可以使用以下命令:

create database 數據庫名 character set utf8; 

use 數據庫名;

source  導入的數據庫.sql;  

修改數據庫編碼的命令為:

alter database 數據庫名 character set utf8; 

 

特別說明下,我的是win7操作系統,MySQL為MySQL Server 5.5版本,期間重啟MySQL服務器后查看發現character_set_database這個變量還是gbk,其它為utf8(注意不能為utf-8),我最后用alter database character set utf8;后重啟MySQL服務就變過來了!!

4.以上設置好后重啟MySQL再次導入.sql文件后,數據庫表中文顯示正常中文

 


免責聲明!

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



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