由于系统操作失误或者系统故障导致数据会丢失,数据的丢失会是致命的打击。所以数据库备份是为了防止此类事发生,做好数据库备份至关重要,不可忽视!!! 当然从备份数据中恢复也取决于备份恢复方案了。此文主要讲述的是使用mysqldump命令和crontab定时备份机制
备份数据库-mysqldump mysqldump主要是对数据库表和数据进行备份
1 2 3 4 5 6 mysqldump -hip -uroot -ppassword dbname > dbname_dump_20160414_201900.sql
定时备份-crontab 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 mkdir -p /root/mysql_dump cd /root/mysql_dumptouch mysql_back.sh chmod 755 mysql_back.sh vim mysql_back.sh #!/bin/sh DB_NAME="dbname" DB_USER="username" DB_PASS="passwoed" MYSQL_BIN_DIR="/usr/local/mysql/bin" BACKUP_DIR="/root/mysql_dump" DATE=`date +%Y%m%d_%H%M%S` mkdir -p BACKUP_DIR $MYSQL_BIN_DIR /mysqldump --opt --single-transaction -h192.168.5.33 -ut_user -p$DB_PASS $DB_NAME \> $BACKUP_DIR /$DB_NAME .dump_$DATE .sql $MYSQL_BIN_DIR /mysqldump --opt --single-transaction -h192.168.5.33 -ut_user -p$DB_PASS $DB_NAME | gzip \> $BACKUP_DIR /$DB_NAME .dump_$DATE .sql
由于使用mysqldump命令会出现如下提示信息:Warning: Using a password on the command line interface can be insecure. 由于mysql5.6以后出于对安全性的考虑,不建议使用密码在命令行里使用,使用–single-transaction这个命令选项就可以继续正常备份,即使有提示信息
添加定时任务列表 1 2 3 4 5 6 7 8 9 10 11 crontab -e 0 18 * * * /bin/sh /root/mysql_dump/mysql_back.sh service crond restart tail -f /var/log /cron
crontab格式说明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
可以发现crontab的执行周期由五个部分组成:分钟、小时、天、月、每周几
PS:此教程适用于个人和小型网站进行数据库备份