mysql 數據備份和還原


  1. 使用mysqldump命令備份
    使用root用戶備份test數據庫下的person表
mysqldump -u root -p test person > D:\backup.sql
  1. 備份多個數據庫
    語法:
mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql

加上了--databases選項,然后后面跟多個數據庫

mysqldump -u root -p --databases test mysql > D:\backup.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:\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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM