Shell实现MySQL分库备份

162 篇文章 15 订阅

01 前言

工作中经常会用到…

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 总结

工作中经常用的到,反倒是分表备份我觉得不是那么常用(主要是一般表都太多了),新技能get!!!

参考链接 :
Linux篇:shell实现mysql分库备份
https://www.jianshu.com/p/3a2ef3187ddc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值