转了一个OA数据库的编码,花了一夜的时间,累到最后写点东西,都是关于编码转换的:
备份王确实好用,但不是通用的,对于OA这样有大量用户输入的数据库,备份王可能不行.
虽然理论上数据库中已有的内容,格式肯定合乎数据库规范,但好像是WC只是在读取数据库的时候用了去掉了魔术引号,但写入时没添加上~~~
有个别数据库或表会怪异到无法解释:我使用正常,用phpmyadmin也正常,但用备份王无论如何备份不了或恢复不了~~~我碰到了前者,开始一位是备份的表太多或数据量太大,减少到单独备份这一个表也不行,无语了!
不过WC对备份王的错误信息处理得不好,备份恢复如果出错,显示给用户的是一个"白脸",看着就迷茫啊,能不能提示下,到哪个表出了问题,抑或是整个库就不行?
而且备份王对备份文件处理有些不太通融,备份出来的文件明明都是email1.php,email2.php,sms1.php~~我把config.php里面sms的相关变量删除,把sms1.php删掉竟然还是提示sms1.php找不到,如果我真的想恢复除sms表之外的内容——我就唯有再备份一次,如果这个备份是我几个小时等到的结果呢?代价高了点,我觉得让他自动识别文件,其实不难
不过凭良心说话,要感谢WC,没有备份王的话我没这些牢骚,有了,用了,倒是说起不足来了——偶声明,仅仅是善意的建议,没有恶意的批评,毕竟我们期待WC和他团队的东西远不止备份王,但下一个版本的备份王,能采纳下不?
最后补充一下WC关于数据库编码转换的方案: WC的原文:
mysql数据表编码转换为gbk方法: 1、先备份discuz数据库的数据,以防万一 2、用帝国备份王备份数据: (1)、备份注意事项1:参数设置中要选择服务器使用的mysql版本 (2)、备份注意事项2:备份时不选择默认编码 3、新建一个gbk编码的数据库(用phpmyadmin建) 4、恢复数据并转换数据表编码为gbk: (1)、到备份王的参数设置,把mysql版本设为4.0,并把默认编码设为gbk (2)、然后将备份王备份的数据恢复到新建的gbk编码数据库即可转换编码完毕。 5、修改discuz的数据库配置文件,将数据库改为新建的数据库名,并且将这项的值设为gbk:$dbcharset = 'gbk'; 6、完成
|
补充:
4(1.5)对于编码修改涉及字段编码的,需要将备份文件中字段编码修改为目的编码,否则会出错或编码不改变
这个方案可以扩展,未必只用在目的编码是gbk的转换上,而且这个转换可以作为备份王的一个内置方案,不知道WC对内置几套方案的思路赞同不赞同~~
|
最后再谢谢WC(很久不来论坛了,不知道WC是不是把备份王交给帝兴公司做了)
|