一、使用mysql内置命令 mysqldump
Usage:
mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
mysqldump [OPTIONS] --all-databases [OPTIONS]
可以看到能备份全部的数据库,指定的数据库,指定数据库中的表
mysqldump -uUsername -pPassword Database > /var/backup/mysql/database.sql
二、按日期备份
mysqldump -uUsername -pPassword Database > /var/backup/mysql/database-`date +%Y%m%d`.sql
`date +%Y%m%d` 利用了shell的知识,先执行,得到格式化的日期
vim /var/backup/backup-mysql.sh
把上面的内容存到文件中
chmod +x backup-mysql.sh
加上可执行权限
三、定时备份
使用系统的crontab
crontab -e
# m h dom mon dow command
0 3 * * * /var/backup/backup-mysql.sh
时间的格式是
分 时 日 月 周
上面的例子是指定每天3点备份一次数据库
提高:
当然,还可以加上一些更好的功能,如备份后的文件压缩一下,这个很简单,只保留最近xx天的备份文件,这个要稍微复杂一点点,使用mysql二进制增量备份……
以下是shell脚本:
JIRA_FILE_NAME=jira-`date +%Y%m%d`;
BBS_FILE_NAME=bbs-`date +%Y%m%d`;
MANTIS_FILE_NAME=mantis-`date +%Y%m%d`;
cd /var/backup/mysql/
mysqldump -ujira -pjira jira > ${JIRA_FILE_NAME}.sql
tar -zcvf ${JIRA_FILE_NAME}.sql.tar.gz ${JIRA_FILE_NAME}.sql
rm -rf ${JIRA_FILE_NAME}.sql
mysqldump -ubbs -pbbs bbs > ${BBS_FILE_NAME}.sql
tar -zcvf ${BBS_FILE_NAME}.sql.tar.gz ${BBS_FILE_NAME}.sql
rm -rf ${BBS_FILE_NAME}.sql
mysqldump -umantis -pmantis mantis > ${MANTIS_FILE_NAME}.sql
tar -zcvf ${MANTIS_FILE_NAME}.sql.tar.gz ${MANTIS_FILE_NAME}.sql
rm -rf ${MANTIS_FILE_NAME}.sql
--转自