MySQL 与 Wordpress:崩溃的教训

MySQL一向以来都有中文兼容的问题,说得广一点,就是跟双字节码和Unicode的兼容性都不好。我原来已经经历过一次类似的问题,那一次是MySQL数据库升级,从4.0升级到4.1,后来发现数据导出的时候完全出错,原来储存的utf8码被肢解得粉碎,这是MySQL 4.1的客户端软件的问题。换用4.0的客户端后这个问题解决了,导入4.1后也能正常使用。

不过最关键的问题是,MySQL 4.1的字符整理设置默认是latin1-swedish-ci。甚至原来的utf8码导入之后也是如此。用phpMyAdmin来浏览,发现乱码一片。可是Wordpress却能正常使用。后来把备份的cron job写好,就再也没有理会了。

问题出现总是特别突然。

在前天整理数据库的常规过程里,我尝试把字符整理设置修改成utf8-general-ci。这样问题就出现了,在数据库中几乎所有原来正常显示的字符,都变成了“?”。当时我还想,还好,有备份。谁知道MySQL 4.1的客户端备份出来的数据也出现了相同的问题。

真是欲哭无泪。

我要吸取最大的教训是,备份的数据要先恢复进行测试。虽然以前在4.0下,数据是测试过的,但转移到4.1以后,就犯了经验主义的错误了。

数据库决定转用PostgreSQL

postgresql的utf8支持一向很好,为朋友准备的Blog后台就决定使用postgresql了。不过Wordpress不支持postgres,而wp缺少我最需要的版本保留和比较的功能。比较了几个不同的后台,决定使用pyBlosxom,这个Blosxom的Python的port。虽然它是用文件来储存,不过我可以通过SVN来作本机和服务器的文件同步,也可以做版本比较。因为以文件形式储存,我更不用担心字符编码的问题。

现在使用的Blog软件就是pyBlosxom,模板还是在用原来的。装了一系列的插件之后,已经可以符合我的需求了。虽然pyblosxom的配置非常麻烦,但有时候,文字的安全还是很重要的。诸位看官,您说呢?

Comments (3)

  1. Alex Dong wrote::

    http://dongxun.wordpress.com/2006/01/10/utf-8-and-gb2312-2/

    不是MySQL的问题,只用一句话就可以fix了。

    Wednesday, January 18, 2006 at 9:17 am #
  2. Felix Wong wrote::

    趁着WP 2.0出来,就顺便fix了。
    不过以前被损坏的文章,就没有办法恢复了。能有办法恢复么?

    Wednesday, January 18, 2006 at 3:20 pm #
  3. SayItAloud wrote::

    Good Post, have you ever thought about making money for your time and effort spent on writing good articles? At SayItAloud You can write, get exposure, and possibly earn some good money doing so. Either way, I’m bookmarking you. You can click on my name to go directly to our site.%d%a%d%aI look forward to your future postings.

    Wednesday, February 18, 2009 at 11:32 pm #

Supported by Webinit Consulting