MySQL分库分表备份数据库脚本的操作
发布时间:2020-05-26 16:52:23
来源:51CTO
阅读:134
作者:三月
本篇文章给大家主要讲的是关于MySQL分库分表备份数据库脚本的操作的内容,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL分库分表备份数据库脚本的操作对大家多少有点参考价值吧。
备份数据库脚本
[root@*** 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
[root@*** script]# sh store_backup.sh
[root@*** 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分库分表备份脚本
[root@*** 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分库分表备份数据库脚本的操作详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。