mysql 数据备份和还原
- 使用mysqldump命令备份
使用root用户备份test数据库下的person表
mysqldump -u root -p test person > D:\backup.sql
- 备份多个数据库
语法:
mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql
加上了--databases选项,然后后面跟多个数据库
mysqldump -u root -p --databases test mysql > D:\backup.sql
- 备份所有数据库
mysqldump命令备份所有数据库的语法如下:
mysqldump -u username -p -all-databases > BackupName.sql
示例:
mysqldump -u -root -p -all-databases > D:\all.sql
- 还原使用mysqldump命令备份的数据库的语法如下:
mysql -u root -p [dbname] < backup.sq
示例:
mysql -u root -p < C:\backup.sql
脚本·
#!/bin/bash
#1.定义数据库链接,目标库信息
MY_user="root"
MY_pass="123456"
MY_host="192.168.10.22"
MY_conn="-u $MY_user -p$MY_pass -h $MY_host"
MY_db1="xxxx"
MY_db2="yyyy"
MY_db=('xxx' 'xxx' 'xxx')
#2.定义备份目录,工具,时间,文件名
BF_dir="/opt/mysql_bak"
BF_cmd="/usr/bin/mysqldump"
BF_time="date +%Y%m%d-%H%M"
name_1="$MY_db1-$BF_time"
name_2="$MY_db2-$Bf_time"
#3先导出为.sql脚本,然后再进行压缩(打包后删除源文件)
cd $BF_dir
# for i in ${MY_db[@]};
# do
# $BF_cmd $MY_conn --single-transaction --master-data=2 --databases $MY_db > $BF_dir/$i-$BF_time.sql
# done
$BF_cmd $MY_conn --databases $MY_db1 > $name_1.sql
$BF_cmd $MY_conn --databases $MY_db2 > $name_2.sql
/bin/tar zcf $name_1.tar.gz $name_1.sql --remove &> /dev/null
/bin/tar zcf $name_2.tar.gz $name_2.sql --remove &> /dev/null
愿力量与你同在_YC