随着网站的运行MySQL数据库也越来越大,备份问题也日益凸显,使用phpmyadmin导出或导入时可能会因为超时文件过大等原因无法导入或导出,这里微酷就不再提phpmyadmin的备份方法了,主要说下Mysql自带的备份工具。

Mysqldump命令备份数据库库方法:

/usr/local/mysql/bin/mysqldump -u 用户名 -p 数据库名 > 文件名.sql

如果数据库用户名有密码密码,执行后会提示输入密码。如果数据库用户名没有密码,就将命令中的“-p”参数删除。

注意:推荐使用MySQL root帐号进行操作,因为有些数据库可能设置了只能对应的用户进行操作。

Mysql命令恢复数据库方法:

/usr/local/mysql/bin/mysql -u 用户名 -p 数据库名 < 文件名.sql

参数与mysqldump的使用一样。

注意:导入的数据库名需要已经存在。

使用实例:使用mysqldump定时自动备份所有数据库:

vi backup-db.sh

/usr/local/mysql/bin/mysqldump -uroot -ppassword databasename > /web/www/db-backup/databasename$(date +"%Y%m%d").sql

rm /web/www/db-backup/databasename$(date -d -7day +"%Y%m%d").sql
#上面语句删除7天前的备份 

上述脚本中-u后接数据库用户名, –p后接数据库用户密码,databasename改成要备份的数据库名,也可以备份全部数据库将databasename修改为–all-databases,后面/web/www/db-backup/ 是备份的目录。

 添加定时执行任务:

crontab -e

59 23 * * * /root/backup-db.sh

每天的23:59分会自动执行backup-db.sh来备份数据库,且生成的数据库压缩按日期命名。备份完了就赶快把备份下载到本地,毕竟,备份的数据都在远程不在本地。

如果是转移服务器就将备份出的sql文件传到新服务器,用mysql恢复命令恢复就OK了。

目前有5 条留言

  1. 2011年06月06日 18:00 百度非官方   |  引用  |  #1     

    很实用的方法。

  2. 2011年06月06日 20:41 9158   |  引用  |  #2     

    前两个命令,我是经常用。

  3. 2011年06月06日 23:15 seo优化   |  引用  |  #3     

    我也是第一和第二个命令常用。

  4. 2011年06月07日 20:53 LouisHan   |  引用  |  #4     

    没有系统权限啊

  5. 2011年06月08日 09:17 viv   |  引用  |  #5     

    这个用得着啊

发表评论

/ 快捷键:Ctrl+Enter
加载中……