19

前言:WordPress使用MySQL数据库,并使用UTF-8编码保存它的所有数据,但是MySQL默认使用Latin1编码来保存数据,这样会造成UTF-8编码的汉字在导出时出现乱码,恢复备份或者转移站点需要进行的导入操作将一塌糊涂,本文是作者进行倒库数次乱码后成功的亲身经历,如有建议或意见,请回复本文,谢谢。

导出
phpmyadmin登录,语言简体中文即可
MySQL 连接校对:选择utf8_bin
选wordpress库,选择导出,勾上保存到文件
以上步骤也可以用如下方式进行
进入wordpress后台管理,启用WordPress Database Backup这个插件
在“管理”页上选“备份”,选择“下载到电脑”
该操作最好在FireFox下进行,IE会报JavaScript错误并死在那里

转换
在这个文件上右键选择打开方式,使用Microsoft Office Word打开
关键步骤也就是这一步了,Word非常聪明,精确地认出了这个文件使用的编码
在Word里面全选,复制
打开Editplus,新建一个空白文档,粘贴进去
^H替换所有latin1为utf8,保存时要使用“另存为”,选择编码UTF-8保存

导入
使用phpmyadmin,在这台或另一台服务器创建一个新的数据库,注意编码选择UTF-8_bin
选择这个数据库导入,将Editplus保存的文档上传,编码仍选择UTF-8
好了,修改你的wp根目录下wp-config.php的DB_NAME等内容
修改wp-db.php,在第56行新增$this->query(“SET NAMES ‘utf8′”);
它应该写在$this->select($dbname);这行的上面一行

此时即可顺利地打开你的wordpress,而没有乱码。

注:phpMyAdmin版本 2.9.0.2,MySQL client version: 4.1.4-gamma

written by 城市过客甲


12 Responses to “WordPress数据库备份导出导入教程 (原创)”

  1. 1. Dai Says:

    待明日俺来测试。嘿嘿

  2. 2. pan Says:

    该操作最好在FireFox下进行,IE会报JavaScript错误并死在那里。

    如果没有汉化,也就是英文版的wordpress,IE应该也可以的。

  3. 3. miss Says:

    还是觉得用plugin的好些。其实我喜欢用firefox打开它。gedit(我用debian/sarge, gnome桌面系统)不适合打开太大的文件。用firefox可是定义编码。反正不是utf-8就是GB2312。
    导入我没有试过。等式需要的时候我会再搜的。谢谢。我有一个问题,为什么我觉得lifetype登录比wordpress快呢?
    另外,请问,邮件服务器用什么比较好?我是内网,但是想发信件。当然,不能收邮件,或者只能收南开的信件。

  4. 4. 城市过客甲 Says:

    wordpress只有一个页面慢,就是后台的“控制板”
    恰好是登录后的默认页
    所以我现在是记住密码,登录走文章的Edit链接,然后再去点别的功能

    如果只是发信件,有smtp转发功能就足够了
    要想让服务器能收信件,得先去注册个域名

  5. 5. govo Says:

    我在我的空间那里用phpMyAdmin那里导出的时候出问题,无论你生成zip还是bzip或是不压缩,都不能让浏览器弹出下载窗口,而问题直接在浏览器中显示出来。请问可以解决这个问题吗?谢谢!

  6. 6. 城市过客甲 Says:

    回govo:
    请确认勾上了“发送”按钮,phpmyadmin会在数据包header里标明让你下载,除非你的浏览器默认这样的操作为打开而不理睬它
    另:如果完全显示出来,直接复制下来粘贴到别的地方也是可以的

  7. 7. govo Says:

    我空间上的phpMyAdmin有一个“另存为文件”可以勾选,但在IE和firefox中也不能下载,更奇怪的是,从页面中的sql看到,它注释行中的文字可以看清是中文的,但表中字段的中文却是乱码,然后用word打开的方法,也只能看到注释里的中文。我安装了Wordpress的备份插件,但结果还是一样,就连从我本机导出的也一样。
    我估计可能是数据库中是ISO-88591的,而phpMyAdmin导出时写下的东西却是UTF-8的,所以不行,我本机中的Mysql也是iso-88591编码的。

  8. 8. 城市过客甲 Says:

    也许是这样的情况:登录phpMyAdmin后,选左边的数据库之前
    有一个“MySQL 文字编码”或者高版本可能叫做”连接校对”什么的
    首先选一个合适的编码
    MySQL数据表的存储编码和文字编码似乎是完全不相干的两件事

  9. 9. govo Says:

    已经试验过,如果可以直接把文件下载,那么这个.sql文件是有用的,因为它的UTF-8没有被改过,而如果直接用phpMyAdmin在浏览器中浏览的话,通过提制保存下来的是不行的,因为被浏览器转换过。但服务器上的phpMyAdmin不能这么做,还好安装的wordpress备份插件可以下载。

  10. 10. tyro Says:

    怎样打开Editplus?

  11. 11. vastar Says:

    如果是c-panel的linux主机,可以利用定时任务自动备份和发送邮件的。我现在用这个方法。这篇文章也许有帮助:http://vastars.info/application/database-backup-2.html

  12. 12. 城市过客甲 Says:

    这个办法不错
    我觉得更通俗一点的办法是,大多数的主机上可以自定义cron,直接mysqldump然后随便找个smtp类把文件发送出去

Leave a Reply