wordpress数据库mysql里同时出现innodb和myisam两种格式数据表,导致备份不完整怎么办?

其实这篇文章是对上一篇文章的一个补充。(详情参考这篇文章:wordpress数据库mysql使用phpmyadmin打开数据表,提示table “xxx” doesn`t exist)按上篇说的使用帝国备份王,结果还是出了问题。数据库照样不完整。

我在wordpress上面使用了一个付费会员插件叫:ErphpDown。使用data文件夹直接打包的方法进行数据库备份,在新的vps还原之后,这个插件对应数据表里面的内容全部被清空了。非常重要的数据,像哪些人开通了vip会员,下载过哪些资源等等数据全都没了。这还要得个屁啊。重要的数据全没了。

我一直在尝试各种方法,包括使用phpmyadmin进行数据库导出,问题依旧。上文说到的帝国备份王,让我知道了这个插件数据备份不出来的原因。原来是数据表的格式不对。其他的数据表格式为:myisam,这家伙却变成了InnoDB。

wordpress数据库mysql里同时出现innodb和myisam两种格式数据表,导致备份不完整怎么办?_图片

我就说mysql的日志里,怎么老是出现什么错误提示:

[Warning] InnoDB: Cannot open table xxx/wp_aiowps_login_lockdown from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.

这个InnoDB格式的数据库有点东西的。它是把数据和结构分开的。对应着两个文件,一是data目录下的xxx网站文件夹,二是data目录下的ibdata1文件。难怪按我以前的方法,只打包了data目录下的xxx网站文件夹。缺了ibdata1这文件,当然没有数据。

原因找到了。那怎么解决呢?网上有两种方法:

1、把data目录下的xxx网站文件夹和ibdata1文件一起打包,覆盖到新的mysql目录下。
2、wordpress安装插件进行备份。插件名叫:WP-DB-BACKUP。
下载地址:http://wordpress.org/extend/plugins/wp-db-backup/
这插件能把两种格式的数据备份成.sql文件格式。这样再导入新的vps数据库就没有问题了。

我是使用的第2种方法。问题已经完美解决了。

但是如果你想下次再迁移的时候,不这么麻烦,可以把innodb格式数据表全部转换为myisam即可。下次直接打包data目录下的对应网站文件夹即可。

在mysql命令下,执行如下语句:

ALTER TABLE wp_xx1 ENGINE=MYISAM;
ALTER TABLE wp_xx2 ENGINE=MYISAM;

未经允许不得转载:自学控 - 自己建站也轻松 » wordpress数据库mysql里同时出现innodb和myisam两种格式数据表,导致备份不完整怎么办?

分享到: 更多 (0)
avatar
自己建站,一点一滴积累经验。

评论 抢沙发

评论前必须登录!

立即登录   注册

自学控[zixuekong.com]

关于本站
切换注册

登录

忘记密码 ?

切换登录

注册