393
中電雲集
mysql 4.0 數據快速轉換到 5.0
mysql 4.0 數據快速轉換到 5.0
數據庫環境都是gbk
一、導出:
mysqldump -u xxx -pxxx –default-character-set=gbk db1 > 1.sql
二、檢查新mysql5的配置(一般通這個步驟可以略掉)
######################################################################################
5.0的數據庫要做以下的修改
my.cnf 或my.ini
1、注釋掉 #sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
2、查看是否是 default-character-set=gbk
######################################################################################
三、在新mysql5建立數據庫db1 設置默認的編碼是gbk,mysql的用戶是root,密碼是xxx
CREATE DATABASE IF NOT EXISTS `db1` DEFAULT CHARACTER SET gbk;
四、導入:
mysql.exe -uroot -pxxx -f db1 < 1.sql
mysql.exe -uroot -pxxx –default-character-set=gbk -f db1 < 1.sql
################################################################################################
備注:
由於4.0是沒有編碼設置,
所以在新的5.0上麵要設置mysql的conf把default-character-set=gbk,character-set-server=gbk
這樣就能解決一般經常碰到的亂碼問題了
當然導入過程中可能會有一些錯誤提示,根據提示修改下導出的sql文件就行。
一般比如group這類特殊字段名要改成`group`才能正確導入到5.0。
建議使用notepad2來編輯sql文件
字符集(Character set)和排序方式(Collation)。
對於字符集的支持細化到四個層次: 服務器(server),數據庫(database),數據表(table)和連接(connection)。
SHOW VARIABLES LIKE ‘character_set_%’;
SHOW VARIABLES LIKE ‘collation_%’;
mysqldump的參數參照:
MySql數據庫備份mysqldump參數選項
–default-characte-set 以前數據庫的字符集,這個一般情況下都是latin1的,
–set-charset 導出的數據的字符集,這個可以設置為gbk,utf8,或者big5
解決方法是轉換數據編碼方式:
第一步:將數據導出成期望的字符編碼:
Mysqldump -u用戶名 -p密碼 –default-character-set=原字符集 –set-charset=期望字符集 –skip-opt 數據庫名 > 導出的文件名.sql
第二步:建立一個期望字符集的臨時數據庫:
CREATE DATABASE `phpbb_gbk` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
第三步:將第一步備份的數據導入到這個新創建的臨時數據庫裏麵:
mysql -u用戶名 -p密碼 –default-character-set=期望字符集 -f 數據庫名 < 第一步備份的文件名.sql
#################################################################################################
最後更新:2017-01-04 22:34:31