wordpress用了一段时间,很多朋友都担心自己数据库会被损坏或者在更换虚拟主机的时候想要自己备份数据库。到数据库文件夹下面去查看发现只有.frm的文件,没有.myd和.myi文件,因此无法直接备份数据库,而且发现数据库所在文件夹非常小,整个文件夹只有几百K,但是通过phpMyAdmin查看各个数据表大小又是正常的,在网上搜了一阵终于搞清楚到底是怎么回事了。
原来wordpress在安装建立数据表的时候有两种类型,1个是innoDB另1种是MyISAM,默认好像是innoDB。
1、innodb格式数据库如果要直接备份,除了要备份数据库文件夹外,还需要备份data目录下的ibdata1文件,实际上所有的数据是存放在ibdata1文件下的。如果需要直接覆盖数据库恢复,需要同时将数据库文件和ibdata1文件同时覆盖才能正常恢复。
2、有的虚拟主机用户希望能将innoDB格式的数据库转换成MyISAM,便于直接备份或恢复数据库(因为ibdata1是在data目录下,一般虚拟主机用户都无法直接拷贝这个文件),其实可以通过一个SQL语句,将数据库由innoDB转换为MyISAM,以方便虚拟主机用户直接备份数据库,通过下面这个语句转换数据库中所有表:
这样在数据库文件夹下就会生成.myd和.myi的数据文件和索引文件,这样就可以直接备份数据库文件了。
3、至于innoDB和MyISAM两种数据格式哪种更好,网上有相关文章,大家可以搜一下,其实小型网站数据库如果不大查询量也不大的话,MyISAM是足够的,但如果是数据量大查询量大的网站,建议还是innoDB格式。
PS:网上还有1个插件WP-DB-BACKUP,这个插件可以对两种格式的数据备份成.sql文件格式,可以指定备份到服务器备份,可以备份定期发送到邮箱。 WP-DB-BACKUP下载地址:http://wordpress.org/extend/plugins/wp-db-backup/