美文网首页每天一个Linux命令我用 LinuxLinux学习|Gentoo/Arch/FreeBSD
Linux篇:shell实现mysql分库备份(价值10元)

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

作者: walker86 | 来源:发表于2019-10-12 17:43 被阅读0次

    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!!!

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/gfiqmctx.html