备份所有库
mysqldump -uroot -p --single-transaction --all-databases > backup.sql
备份指定数据库
mysqldump -u root -p --single-transaction dataname > dataname.sql
或者备份目录,mysql目录一般为/var/lib/mysql
tar zcvf backup.tar.gz /var/lib/mysql
增量备份(开启binlog)
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --all-databases > backup.sql
--flush-logs会生成新的二进制日志文件,如bin-log.000002。
--master-data=2 记录binlog位置
所有数据库恢复
mysql -u root -p < backup.sql
恢复指定库
mysql -u root -p dataname < dataname.sql
增量备份的恢复
mysqlbinlog bin-log.000001 | mysql -u root -p
每天全备份
#!/bin/bash
#file:mysql_bak.sh
time=`date +%F`
bak_file="/data/backup/$time.sql"
user="root"
passwd="123456"
host="localhost"
/usr/bin/mysqldump -u$user -p$passwd -h$host --single-transaction --all-databases > $bak_file >/dev/null 2>&1 &
使用crontab -e编辑
[root@letong ~]# crontab -l
59 23 * * * /bin/bash /data/mysql_bak.sh