共計 1567 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章主要講解了“mysql4.1 數據轉換的實現方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“mysql4.1 數據轉換的實現方法”吧!
mysql 4.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 ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear‘???
/*!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 服務就可以了,我這里設置的是大約 10M。
到這里數據導入基本就完成了,接下來就是根據各個應用的不同來調整了,一般有的系統已經支持了,但還有的不支持,不過調整方法大概分以下幾類:
1、在數據庫連接后面加上
mysql_connect(….
mysql_query(”set names‘utf8′”);
這種情況最多,比如 Brim 什么的。
2、將語言文件或模板文件的編碼設置為 utf-8,注意是直接把文件編碼轉換了就可以,內容不用管,這樣的有 phpwind, mantis。使用工具可以是 iconv,在這里可以下載。
iconv -f gb2312 -t utf-8 gb2312.html utf-8.html
3、修改模板文件,設置 HTML 中的
原先是 gb2312 編碼的系統多半需要改這個。
感謝各位的閱讀,以上就是“mysql4.1 數據轉換的實現方法”的內容了,經過本文的學習后,相信大家對 mysql4.1 數據轉換的實現方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!
向 AI 問一下細節