52design一台服务器被攻击,导致上面的BBS系统遭到破坏,原来使用Discuz跑在Windows下,用的是 5.0版本的数据库,在决定将BBS迁移到第三方的服务器之后,发现别人只提供 4.0.21版本的数据库支持,迁移时他们尝试直接将数据库文件拷贝到 4.0中,这样无法正常工作。

4.0及之前的版本是不区分字符集的,全部是latin1,而Mysql4.1之后支持多语言、多字节。在原来的服务器上使用的GBK编码,直接拷到 4.0是肯定不能正常运行。

另外,由于 4.0不支持多语言导致许多汉字在做主键索引是会存在冲突(二进制一直),虽然中间将数据顺利生成了sql语句但不能顺利导入到 4.0中,几经尝试,发现了一个非常快捷的方式回复BBS的运行:

在PHPMyAdmin中,选中需要到处的数据库,选择“导出”菜单选中需要导出的表,在“Options”组合框的“SQL compatibility mode”选中“MYSQL40”,在“结构”组合框选中“Add IF NOT EXISTS”、“添加 AUTO_INCREMENT 值”、“请在表名及字段名使用引号”,在下面的“导出类型”中选择“REPLACE”,在“另存为文件”组合框中选中“ZIP压缩”,点击“执行”按钮将生成的SQL文件保存到硬盘上。并将这个ZIP文件解压缩,用UltraEdit之类的编辑器打开这个sql文件,检查是否是UTF8编码,如果是则转换成ASCII编码。

将这个SQL文件使用命令程序导入到数据库中即可: -uroot -ppass dbname <sqlfile.sql。

这样就可以完成将数据从 5.0中导入到 4.0中了。唯一缺陷是会丢失部分数据,原因前面说过在Mysql4.0中不支持多字节语言,许多汉字的二进制一样导致主键冲突。

标签:,

,

相关文章:

  • 暂无相关日志

引用地址:http://web2world.cn/article/2007/12/a67.html

要说点啥就在这吧

(若看不到验证码,请刷新网页。)