数据库可是网站的核心啊,是维护中的重中之重,为了避免意外,你需要定期备份mysql数据库,这里介绍如何将数据库定期备份到邮箱.
1.下面是Sino Unix 目前备份mysql数据库用的脚本
#!/bin/bash
date=`date +%Y%m%d`
mysqldump --user=root --password=sinounix --lock-all-tables --all-databases > /bak/$date.sql
tar zcPf /bak/$date.sql.gz /bak/$date.sql
echo "`date +%Y%m%d` DB" | mutt -a /bak/$date.sql.gz -s "$date DB" admin@sinounix.com
rm -f /bak/$(date +%Y%m%d -d "7 days ago").sql*
将以上代码保存为/bak/bakdb.sh
这里解释下参数
1>. --lock-all-tables 保证备份的数据库是同步的
2>. tar zcPf 由于是绝对路径需要用到选项 P
3>. rm -f /bak/$($date -d "7 days ago").sql* 删除七天前的sql和sql.gz文件
2.另外你还需要做的设置是发件人信息.
编辑~/.muttrc
set envelope_from=yes
set from=bak@sinounix.com
set realname="SinoUnix DBA"
set use_from=yes
3.利用crontab 实现任务计划
目前Sino Unix 每天凌晨 03:00 备份数据库.
00 03 * * * sh /bak/bakdb.sh
4.注意将sinounix.com这个域设置为白名单,如果收不到邮件
具体可在相关邮箱中设置
5.另外还有两种备份方式你能需要用到
mysqldump --user=root --password=sinounix --lock-all-tables 数据库名 > /bak/$date.sql
mysqldump --user=root --password=sinounix --lock-all-tables --databases 数据库1 数据库2 > /bak/$date.sql
1.下面是Sino Unix 目前备份mysql数据库用的脚本
#!/bin/bash
date=`date +%Y%m%d`
mysqldump --user=root --password=sinounix --lock-all-tables --all-databases > /bak/$date.sql
tar zcPf /bak/$date.sql.gz /bak/$date.sql
echo "`date +%Y%m%d` DB" | mutt -a /bak/$date.sql.gz -s "$date DB" admin@sinounix.com
rm -f /bak/$(date +%Y%m%d -d "7 days ago").sql*
将以上代码保存为/bak/bakdb.sh
这里解释下参数
1>. --lock-all-tables 保证备份的数据库是同步的
2>. tar zcPf 由于是绝对路径需要用到选项 P
3>. rm -f /bak/$($date -d "7 days ago").sql* 删除七天前的sql和sql.gz文件
2.另外你还需要做的设置是发件人信息.
编辑~/.muttrc
set envelope_from=yes
set from=bak@sinounix.com
set realname="SinoUnix DBA"
set use_from=yes
3.利用crontab 实现任务计划
目前Sino Unix 每天凌晨 03:00 备份数据库.
00 03 * * * sh /bak/bakdb.sh
4.注意将sinounix.com这个域设置为白名单,如果收不到邮件
具体可在相关邮箱中设置
5.另外还有两种备份方式你能需要用到
mysqldump --user=root --password=sinounix --lock-all-tables 数据库名 > /bak/$date.sql
mysqldump --user=root --password=sinounix --lock-all-tables --databases 数据库1 数据库2 > /bak/$date.sql



mysql备份方法详解
中文mysql错误对照表

