Linux篇:shell实现mysql分库备份(价值10元)

服务器

浏览数:10

2019-10-13

01 前言

这是一段价值10元的脚本,工作中经常会用到…

02 实现过程

进入mysql中查看库名

 mysql  -uroot  -p’root’

 show databases;

如下图

图1 命令行进入MySQL

或者可以不进入MySQL中,直接在命令行中显示,用以下命令

mysql -uroot -p’root’ -e ”show databases;”

效果见下面图2

图2 命令行显示数据库名

这里比如说我不想要哪些框,以及Database,information_schema这几行,可以借助sed工具来实现

mysql -uroot -p’root’ -e ”show databases;”|sed 1,2d

这样我就基本得到数据库的库名了

接下来就可以备份数据库了,用mysqldump这个命令,以备份confluence为例

mysqldump -uroot -p’root’ -B confluence

这里突然报错了:

mysqldump: unknown option ‘–no-beep’

我安装的是mysql 5.7版本,在网上查阅资料说有两种解决办法

1 在my.cnf 配置文件下删除no-beep参数

2 在mysqldump 后追加 –no-defauluts参数

第2中方法我试了没成功。改用第一中办法,并重启mysql

mysqldump -uroot -p’root’ -B confluence

如果不想这些显示,可以讲这些保存到sql中,即备份文件

mysqldump -uroot -p’root’ -B confluence > confluence.sql

现在通过脚本来实现,新建一个脚本名为mysqlbackup.sh

vim mysqlbackup.sh

脚本如下:

将需备份的数据库名抓取出来,并赋值给databasename变量,通过for循环依次执行备份命令操作

查看是否已备份成功,可以看到已备份成功(都是有数据的)

03 总结

这是一段绝对价值10元的脚本,工作中经常用的到,反倒是分表备份我觉得不是那么常用(主要是一般表都太多了),新技能get!!!

作者:walker86