linux系统备份MySql数据库的方法(MyISAM和InnoDB)

作者:简简单单 2014-07-05

今天新上了一个linode的vps, 选择日本的数据中心! 速度还是挺快的,ping值很低。


直接点击,注册时输入   da932e6d6e613d7e0ae2cd3bc1302581a927fb04      ,使用3个月后,linode会返给我$20. 嘿嘿!

顺便提一句linode没有windows的vps。

今天这篇文章主要是记录一点关于mysql数据文件的导入、导出问题。其中涉及到MyISAM和InnoDB两种数据类型.

MyISAM数据类型就不说了,直接导出、导入就可以使用!

起因:我有一个WordPress的小站数据类型中有InnoDB和MyISAM,发现导入的数据文件中,InnoDB不能显示出来。为此,还把lnmp1.1重新换成1.0,最后发现只要是InnoDB数据在导入的数据库中都不能显示出来,才知道可能与mysql的数据类型有关。

上网查了一下,“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。

MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。解决方法就是:

同时拷贝innodb数据库表“*.frm”文件和innodb数据“ibdata1”文件到合适的位置。

即在数据库引擎类型为InnoDB时,拷贝数据文件的同时还需要拷贝ibdata1 。

最后停止mysql服务,将目录下的ib_logfile*文件全部删除掉,重新启动mysql服务,大功告成。

上面只是手工备份,如果我们要更高级点是需要自动备份的哦

先编辑一个sh文件:

 代码如下 复制代码
CODE
vi /var/local/bin/crontab/backup_db.sh
内容为:
CODE
cd /var/backup/db
rm -f database.sql
mysqldump –opt -uroot database>database.sql
rm -f database.`date -d today +\%w`.tar.gz
tar -zvcf database.`date -d today +\%w`.tar.gz database.sql
scp database.`date -d today +\%w`.tar.gz backup.verycd.com:/var/backup/db/
然后编辑crontab:
CODE
crontab -e
增加:
CODE
0 3 * * * sh backup_db.sh

这个日志快要完成的时候,不知是Firefox的Bug还是论坛JS的Bug,所写的内容一下子全没了,且没有“备份”,含泪重写一遍……以后记得先打开记事本。

相关文章

精彩推荐