數據庫字符集問題

數據庫字符集問題

 

1.列出MYSQL支持的所有字符集: 

SHOW CHARACTER SET; 

 

2.當前MYSQL服務器字符集設置 

SHOW VARIABLES LIKE 'character_set_%'; 

 

3.當前MYSQL服務器字符集校驗設置 

SHOW VARIABLES LIKE 'collation_%'; 

 

4.顯示某數據庫字符集設置 

show create database 數據庫名; 

 

5.顯示某數據表字符集設置 

show create table 表名; 

  www.aiwalls.com  

6.修改數據庫字符集 

alter database 數據庫名 default character set 'utf8'; 

 

7.修改數據表字符集 

alter table 表名 default character set 'utf8'; 

 

8.建庫時指定字符集 

create database 數據庫名 character set gbk collate gbk_chinese_ci; 

 

9.建表時指定字符集 

CREATE TABLE `mysqlcode` ( 

`id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , 

`content` VARCHAR( 255 ) NOT NULL 

) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;

 

庫字符集,在my.cnf中缺少瞭如下代碼: 

[client] 

default-character-set=utf8 

[mysqld] 

default-character-set=utf8 

 

如果不加以上代碼,那麼即便MYSQL編譯安裝時指定的編碼是UTF8,那麼在建庫時其默認編碼仍是LATIN1,而由於字符集的繼承性,庫中的表也是LATIN1的瞭。 

 

windows下的方法是:  www.aiwalls.com  

1、windows系統

 

win下可使用類似如下語句處理。通過命令行進入mysql/bin所在目錄。

D:\usr\mysql41\bin>mysqldump -uroot -p –quick –compatible=mysql40 –default-character-set=latin1 –extended-insert=FALSE test2 > d:\zzz.sql

 

test2是你想導出數據的數據庫名,d:\是路徑,設置成你希望的路徑就行瞭,zzz.sql是隨意命名的文件,名稱隨意,隻要有.sql後綴名就行瞭。

 

程序會提示你輸入root的用戶密碼(如果存在密碼的話),輸入,程序開始導出。500MB的數據2-3分鐘就完成瞭。

 

2、第二步,通過phpmyadmin建立一個新庫,庫名:test ,采集字符集設定為utf8-general-li 或gb2312

  www.aiwalls.com  

 

3、將備份出來的sql文件導入新數據庫。

D:\usr\mysql41\bin>mysql -uroot -p –default-character-set=utf8 test < d:/zzz.sql 

D:\usr\mysql41\bin>mysql -uroot -p –default-character-set=gb2312 test < d:\zzz.sql 

 

這一步花的時間相對較長,200MB數據花瞭10分鐘左右。

 

 

作者 a442180673

發佈留言