Wordpress升级和数据库导入导出经验分享
作者:李杰 出处:http://www.jaylee.cn/wordpress-data-export-import/
Wordpress 2.1放出来了,刚好我原先的2.04出了点问题,所以决定对wp进行升级。升级的过程比较简单,主要是数据库导来导去容易出些问题,尤其容易出现乱码。为了安全起见,本人先在另一个域名下进行wp 2.1的安装,然后把旧数据库导入到这个新装的wp,如果操作过程都比较顺利,我就可以放心地对我的wp 2.04进行升级了。估计大家在升级过程中碰到的问题都差不多,下面和大家分享一下今天摸索出来的经验。因为本人用的虚拟主机是dreamhost,所以就以此为例加以说明。
1、新安装一个wordpress
这个很简单吧,把最新版的安装程序上传到ftp的对应目录就好了;
如果用的是dreamhost,在操作面板Goodies下面有One-Click Installs,点点鼠标即可。注意,此时不需要马上建立wordpress,只要有安装文件放在那里就好了。我把这个新的wordpress安装到域名bak.jaylee.cn下。
2、导出老的wordpress的数据库
在wordpress后台点“管理”,然后把旧数据库“备份”到本地;或者进入PhpMyAdmin后选择导出,在表单选择框里选择全部。选择”另存为文件”中的”gzip 压缩”,点击”执行”便会让你保存到本地电脑中了。
3、新建一个数据库,并进行设置
利用dreamhost操作面板Goodies下面有Manage MySQL 新建一个mysql数据库,然后登陆phpmyadmin,选择刚刚新建的数据库,网页右边框架上方会出来如下的快捷方式:
点击“Operations/操作”按钮,在新打开的页面最下面有“Collation:/整理: ”选项,选择utf8_general_ci 然后点击“go/执行”确认。如果操作成功,页面上会出来:
您运行的 SQL 语句已经成功运行了。
SQL 查询:ALTER DATABASE `****` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
4、把导出的旧数据库导入到新数据库中
进入PhpMyAdmin,选择新数据库,然后点“Import/导入”,选择备份的旧数据库gzip文件,把文件的字符集选择为“utf8”,其他选项默认,然后点击“执行”。如果旧数据库比较大,同时网速比较慢可能要等几分钟,要有耐心。操作成功会出来类似上面的“您运行的 SQL 语句已经成功运行了。 ”的提示的。
kunstao在这个导入的过程中碰到了问题:
总是说什么超出了Memory,或者说超过了30秒的限制,无法正常导入。导入数据库文件大小限制一般为2M,我的备份文件不过才800多KB,为什么不行呢?后来明白,可能是新的服务器连接速度有些慢,所以在进行导入时,总是超过了时间限制。
解决办法:备份数据库时,分几次备份不同的表单,而不是一次重复全部,就这样重复1,2两个步骤三次,总算把数据库正常导入了。
5、更新站内链接
因为数据库相同,当然网站里所有站内链接也会和原来的相同,全部指向的还是原来的域名。在PhpMyAdmin里选择新数据库,点击“搜索”,搜索关键字为你原来设定的网站的域名(比如我的就搜“www.jaylee.cn”),然后在搜索结果页面点“wp_options”后面那个“浏览”,找到“siteurl”和“home”两项,把链接改成新的网址。这个方法比kunstao在文中提到的方便一点。
至此所有数据库操作完成,但是如果此时登陆新网站(bak.jaylee.cn)查看,汉字会全以”?”显示,还需要进行如下操作:
6、 【关键】更改WordPress程序wp-includes/wp-db.php文件
所谓的乱码问题大部分都出在wp-db.php身上,网上有很多关于这方面的解释和论述,具体解决方法比较简单,只需在53行处加入了如下语句(设置php文件读取和写入mysql时使用utf8字符集):
$this->query(“SET NAMES ‘utf8′”);
7、升级wordpress
登陆新网站,进入后台后系统会提示你update,按照提示update一下就行
经过上面这么多步操作后,登陆新网站看看,应该搞定了。当然,如果你要做一个和现有网站一模一样的镜像,别忘了把老wordpress根目录下面的wp_content的内容复制到新网站下。
如果操作过程中遇到什么问题欢迎留言和我探讨。另外,WP 2.1增加了基于WXR格式的导入导出功能,挺好用的,推荐使用。
关于WP数据库导入导出还可以参见:


/
/
:
目前共有 1 条评论:
[...] 转移过程中碰到最大问题就是乱码,因为盘古的MYSQL版本是4.0,盘今是5.0。导入了好几次数据,无论怎么弄,依旧乱码,满篇问号?。最后搜索到李杰门下,找到了解决办法: 点击“Operations/操作”按钮,在新打开的页面最下面有“Collation:/整理: ”选项,选择utf8_general_ci 然后点击“go/执行”确认。 [...]