1. 程式人生 > >MySQL分庫分表備份腳本

MySQL分庫分表備份腳本

數據庫

備份數據庫腳本

[[email protected] script]# cat store_backup.sh

#!/bin/sh

MYUSER=root

MYPASS=qwe123

SOCKET=/data/3306/mysql.sock

MYLOGIN="mysql -u$MYUSER -p$MYPASS -S $SOCKET"

MYDUMP="mysqldump -u$MYUSER -p$MYPASS -S$SOCKET -B"

DATABASE="$($MYLOGIN -e "show databases;"|egrep -vi "Data|_schema|mysql")"

for dbname in $DATABASE

do

MYDIR=/server/backup/$dbname

[ ! -d $MYDIR ] && mkdir -p $MYDIR

$MYDUMP $dbname|gzip >$MYDIR/${dbname}_$(date +%F).sql.gz

done


[[email protected] script]# sh store_backup.sh

[[email protected] script]# tree /server/backup/

/server/backup/

├── test

│ └── test_2017-06-21.sql.gz

└── wordpress

└── wordpress_2017-06-21.sql.gz


2 directories, 2 files


mysql分庫分表備份腳本

[[email protected] script]# cat mysql_table.sh

#!/bin/sh

USER=root

PASSWD=qwe123

SOCKET=/data/3306/mysql.sock

MYLOGIN="mysql -u$USER -p$PASSWD -S$SOCKET"

MYDUMP="mysqldump -u$USER -p$PASSWD -S$SOCKET"

DATEBASE="$($MYLOGIN -e "show databases;"|egrep -vi "Data|_schema|mysql")"

for dbname in $DATEBASE

do

TABLE="$($MYLOGIN -e "use $dbname;show tables;"|sed ‘1d‘)"

for tname in $TABLE

do

MYDIR=/server/backup/$dbname/${dbname}_$(date +%F)

[ ! -d $MYDIR ] && mkdir -p $MYDIR

$MYDUMP $dbname $tname |gzip >$MYDIR/${dbname}_${tname}_$(date +%F).sql.gz

done

done


小貼士:

MySQL 5.6 警告信息 command line interface can be insecure 修復


在命令行輸入密碼,就會提示這些安全警告信息。

Warning: Using a password on the command line interface can be insecure.


註: mysql -u root -pPASSWORD 或 mysqldump -u root -pPASSWORD 都會輸出這樣的警告信息.

1、針對mysql

mysql -uroot -pPASSWORD 改成mysql -uroot -p 在輸入密碼即可.


2、mysqldump就比較麻煩了,通常都寫在scripts腳本中。


解決方法:

對於 mysqldump 要如何避免出現(Warning: Using a password on the command line interface can be insecure.) 警告信息呢?


vim /data/3306/my.cnf

[mysqldump]

user=your_backup_user_name

password=your_backup_password


修改完配置文件後, 只需要執行mysqldump 腳本就可以了。備份腳本中不需要涉及用戶名密碼相關信息。


MySQL分庫分表備份腳本