购买的hostmonster空间上有几个朋友的Blog,由于HOST是PHP+mySQL环境,“强迫”他们放弃了PJblog[ASP环境],安装了Wordpress,面对WP强大的功能、丰富的扩展、持续的维护,相信他们不会后悔,同时会慢慢明白俺的良苦用心。
在昨天购买HM的独立IP,以及更换PHP版本后,本以为可以放松一会儿了,谁知道又出现情况。一个Wordpress Database丢失,不知道被谁误操作删除。幸亏在帮他们安装Wordpress时,已经顺手帮他们安装了"Wordpress Database Backup"插件[下载地址]。每天进行备份数据库到邮箱。使用备份的数据库,可以完全回复数据库到前一天的状态。这不,我的活儿又来了。
恢复过程通过HostMonster控制台自带的phpMyAdmin进行。为避免出现乱码,操作过程,参考了时光漫步,桑林志,夜工厂的文档,其中,推荐“时光漫步”的文档,图文并茂,简单易懂。
完成导入后,主页却还是显示为乱码——本应出现中文字的被“???”代替。对照导入步骤多次执行,问题依旧,真是恨得我咬牙切齿的。突然发现,虽然我已经修改数据库collation为utf8_genneral_ci,但是查看phpMyAdmin中对应数据库的结构(Structure),发现导入的每个table的collation属性还是latin1_swedish_ci【一般国外主机默认的collation】。
经验证,发现是出现了一个低级错误,WordPress Database Backup的备份文件,默认生成格式为所其在数据库的collation,在导出的文中体现为“CHARSET=latin1”。
解决方法:打开备份文档,选用替换选项,把所有“CHARSET=latin1”替换为“CHARSET=utf8”。注意,文件中不止包含一个“CHARSET=latin1”,应该都替换掉。
下面为恢复数据库方法摘要:
- 进入phpMyAdmin界面,打开相应的数据库,点右上角的Operations
- 在出现的页面下找到Collation,改为utf8_general_ci,Go确认
- 点上面菜单Import:确认Character 是utf8。导入数据库文件。【一方面在导入时,应该选择UTF8选项,另一方面则应注意,数据库备份文件中Charset的格式,参照上面方法进行修改。】
- 编辑/wp-includes/wp-db.php文件。在“$this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);”后面添加“ $this->query(”SET NAMES ‘utf8’”);” 语句【请手动添加,复制会产生大小写错误】。
- 整网站的链接。【由于是从同一WP backup中恢复,不存在此类情况,如有需要,请参阅时光漫步blog】
完成上述步骤,网页显示正常。嘿,哥们,下次记得把俺的工钱带来

This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 China Mainland License.

2007-05-16 - 8:27 am :
1为什么TB 不显示?
2007-05-16 - 8:51 am :
2购买hostmonster主机独立IP...
考试完毕后,终于有时间建立一下独立博客,并购买了国外主机空间。主机挑选了Hostmonster主机,美国境内的主机,但据说已经对大陆地区的网络做过优化。通过使用,页面打开速度,上传下....
2007-05-17 - 12:53 pm :
3这是一个测试,不是spam谢谢
2007-05-17 - 12:54 pm :
4回复Comment
2007-06-04 - 8:15 am :
5试试live comment
2007-06-04 - 8:16 am :
6IE浏览器下的LIve Commnet测试