- 使用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