1. 程式人生 > >windows操作系統下mysql 導入.sql文件後數據庫中文亂碼問題

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

lte star 正常 default 格式 不一定 con 不能 中文亂碼

一、產生原因分析

數據庫的編碼格式和導入的.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文件後,數據庫表中文顯示正常中文

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