WEB运维手册

Mysql

备份

备份所有库

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