mysqldump备份和恢复
独立安装mysqldump:
yum -y install holland-mysqldump.noarch
mysql数据库备份:
参考:https://www.cnblogs.com/qq78292959/p/3637135.html
本地:mysqldump -uroot -pPassword --opt database tablename tablename > backup.sql
云数据库: mysqldump -uroot -pPassword --host=123.123.123.123 --opt database tablename tablename > backup.sql
加入压缩,并按日期重命名 mysqldump -uroot -pPassword --host=123.123.123.123 --opt database tablename tablename | zip > database_$(date +%Y%m%d).sql.zip
备份多个数据库: mysqldump -uroot -pPassword --opt --databases base1 base2 > backup.sql
--opt 含义是加入drop指令,在创建表之前。
恢复指定数据库:msyql -uroot -pPassword database < xxxx.sql
恢复全部:msyql -uroot -pPassword < xxxx.sql
仅仅导出结构,不要数据:mysqldump -uroot -pPassword --opt -d > backup.sql
完整脚本:在centos6,用cron定时每天执行即可
#判断是否有安装mysql if mysqldump --version 2>/dev/null; then #do nothing sleep 1s else echo "error,install mysql first!" exit fi #数据库信息 host="172.16.x.x" root="xxx" pwd="xxx" bkFile="db_$(date +%Y%m%d).sql.zip" binlog="/home/database/bin/db_backup.log"
dbname="taofanxian_new"
#指定备份表
mytb="mm_tb1 mm_tb2"
#start
echo "backup database($host) start....."
#备份整个数据库 mysqldump -uroot -p$pwd --host=$host --opt $dbname | zip > /home/database/$bkFile
#备份指定表
mysqldump -uroot -p$pwd --host=$host --opt $dbname $mytb | zip > /home/database/$bkFile echo "backup $bkFile is done." echo "$(date +%Y%m%d)#backup $bkFile">>$binlog #只保留10天的,多余的删除 delFile=db_$(date --date="10 days ago" +%Y%m%d).sql.zip #echo "$delFile" if [ -f /home/database/$delFile ];then rm -f /home/database/$delFile echo "del $delFile is done." echo "$(date +%Y%m%d)#del $delFile">>$binlog fi
恢复脚本:
恢复数据 host="192.127.x.x" root="root" pwd="abc" dir="/root/db_backup/" bkFile= "demo.sql.zip" mydb="db_test" #start echo "recover host($host) db($my_db) from $bkFile start....." #恢复zip压缩包 unzip < $dir$bkFile | mysql -u$root -p$pwd --host=$host $mydb #恢复sql文件 mysql -u$root -p$pwd --host=$host $mydb < $dir$bkFile echo "recover $dir$bkFile is done."
注意:脚本变量定义在“=”等于号之间不能有空格。