亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

詳細講解MySQL 4.1數據如何轉換
2007-07-29   IT專家網 

MySQL4.1增加了編碼的支持,所以在轉換舊數據的時候稍微麻煩一些,但只要注意以下幾點,基本沒問題的:

1、轉換之前一定要先把原有數據dump出來,一般原有數據都是gb2312編碼吧,dump命令如下:

MySQLdump -u -p database –add-drop-table –extended-insert

–add-drop-table是為了導入的時候省去建表環節,–extended-insert是為了防止在導入的時候一個sql語句過大的情況,想想你的上千條記錄寫在一條sql語句中是多么的恐怖。

這里假定原有數據庫是gb2312編碼,需要轉換為utf8編碼,其它編碼之間的轉換類似。

2、修改dump出來的sql文件,用Emeditor或iconv把文件的編碼轉換為utf-8,注意最好不要那個什么“Unicode Signature(BOM)”,因為MySQL.exe不認的。再把文件中的gbk_bin替換為utf8_general_ci,把gbk替換為 utf8,然后在文件最前面加上:

set names utf8;

帶上BOM,MySQL不識別的錯誤大體如下:

ERROR 1064 (42000) at line 1: 

You have an error in your SQL syntax;

check the manual that corresponds to your

MySQL server version for the right syntax to use near ‘???

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */’ at line 1

3、重新建MySQL庫,然后導入備份的sql語句,導入命令如下:

mysql -u -p database < dumpdata.sql

4、如果是以前導出的文件,導入的時候遇到錯誤:

Got a packet bigger than ‘max_allowed_packet’ bytes or 

ERROR 1153 (08S01) at line 616: Got a packet bigger than

‘max_allowed_packet’ by tes

就需要修改MySQL的最大允許包大小了,編輯my.ini,在[MySQLd]部分(不在這部分沒用)添加一句:

set-variable=max_allowed_packet=10485760

重啟MySQL服務就可以了,我這里設置的是大約10MB。

到這里數據導入基本就完成了,接下來就是根據各個應用的不同來調整了,一般有的系統已經支持了,但還有的不支持,不過調整方法大概分以下幾類:

1、在數據庫連接后面加上:

mysql_connect(…. 

mysql_query(”set names ‘utf8′”);

這種情況最多,比如Brim什么的。

2、將語言文件或模板文件的編碼設置為utf-8,注意是直接把文件編碼轉換了就可以,內容不用管,這樣的有phpwind, mantis。使用工具可以是iconv。

3、修改模板文件,設置HTML中的

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

原先是gb2312編碼的系統多半需要改這個。

熱詞搜索:

上一篇:瑞友天翼遠程接入系統與VPN的比較說明
下一篇:JSP連接Mysql數據庫

分享到: 收藏