mysql 数据备份和还原

  1. 使用mysqldump命令备份
    使用root用户备份test数据库下的person表
mysqldump -u root -p test person > D:ackup.sql
  1. 备份多个数据库
    语法:
mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql

加上了--databases选项,然后后面跟多个数据库

mysqldump -u root -p --databases test mysql > D:ackup.sql
  1. 备份所有数据库

mysqldump命令备份所有数据库的语法如下:

mysqldump -u username -p -all-databases > BackupName.sql

示例:

mysqldump -u -root -p -all-databases > D:all.sql
  1. 还原使用mysqldump命令备份的数据库的语法如下:
mysql -u root -p [dbname] < backup.sq

示例:

mysql -u root -p < C:ackup.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 
原文地址:https://www.cnblogs.com/magic-chenyang/p/10529253.html