修改mysql資料庫的預設編碼方式

wangjun_pfc發表於2009-01-18

修改my.ini檔案

加上

default-character-set=gb2312

設定資料庫字符集

alter database da_name default character set 'charset'

1)設定資料庫編碼 /etc/my.cnf
[mysqld]
default-character-set=gbk

...
[client]
default-character-set=gbk

---------------------------------------

2)按字符集匯出
$mysqldump -u root -p dbname --default-character-set=gbk > a.sql;


3)檢視SQL檔案的編碼
[root@localhost gethtml]# file a.sql
   a.sql: UTF-8 Unicode ...
[root@localhost gethtml]# iconv -f utf-8 -t gbk a.sql > a2.sql
[root@localhost gethtml]# file a2.sql
   a2.sql: Non-ISO extended-ASCII English text 這時已經是gbk的編碼了

3)匯入
檢視資料庫服務和客戶端字符集
mysql> status;
Server characterset:    gbk
Db     characterset:      gbk
Client characterset:      latin1
Conn. characterset:     latin1


mysql> set names 'gbk';   //這樣

mysql> status;
Server characterset:   gbk
Db     characterset:     gbk
Client characterset:     gbk
Conn. characterset:    gbk

這時才能導資料
mysql> source a.sql;

----------------------------------------------------------------------------------

單獨設定某個資料庫:
alter database testdb character set utf8;

檢視mysql支援的編碼:
show character set;


檢視系統的字符集和排序方式的設定可以通過下面的兩條命令:

mysql> SHOW VARIABLES LIKE ''character_set_%'';

LINUX 如下:

1)匯出資料
[root@www.cnscn.org ~]$ mysqldump -u root -p dbname --default-character-set=gbk > base_user.sql;

2)檢視匯出的sql檔案的編碼
[root@www.cnscn.org ~]$ file base_user.sql
  base_user.sql: UTF-8 Unicode text, with very long lines

3)轉成要用的編碼
[root@www.cnscn.org ~]$ iconv -f utf-8 -t gbk base_user.sql >base_user_gbk.sql

4)連線資料庫並檢視當前庫的編碼
[root@www.cnscn.org ~]$ mysql -uroot
 mysql> use testdb;

mysql> status;
    Server characterset:    latin1
    Db     characterset:    gbk
    Client characterset:    latin1
    Conn. characterset:    latin1

5)設定成需要的編碼
mysql>set names 'gbk';

6)檢視現在的編碼
mysql> status;
    Server characterset:    latin1
    Db     characterset:    gbk
    Client characterset:    gbk
    Conn. characterset:    gbk

7)匯入我們轉換成gbk後的檔案
mysql> source base_user_gbk.sql;

相關文章