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