Shell 脚本备份MySQL数据库

(1)思路

<1>安装MySQL数据库

<2>创建数据库,表,插入数据

<3>授权一个用于备份数据库的用户名和密码

<4>备份数据库的命令: mysqldump -u root -p 1234 -d MySQLDB > 1.sql

<5>引入if语句实现备份全部数据库

<6>引入for循环语句,实现备份多个数据库

(2)实战案例

编写MySQL数据库备份脚本,可以实现备份任意数据库,输入A,就备份A库,输入B,就备份B库,输入C,就备份C库,输入ALL,就备份全部数据库

(3)安装步骤

<1>安装MySQL数据库

yum  install  mysql-server  mysql-devel  mysql-libs  -y

<2>重启MySQL数据库

service mysqld   restart

<3>进入数据库命令行模式

创建3个数据库,分别在3个数据库中创建3张表,在表中插入一条数据

create  database  jfedu;

use  jfedu;

create table t1(id varchar(20),name varchar(20));

insert into t1 values("1","daqi");

desc t1;

select * from  t1;

注释:

不要忘记验证数据库,表 ,数据是否都已经创建成功

<4>授权一个用于备份数据库的用户名和密码

grant all on *.* to [email protected] identified by "123456";

<5>


#!/bin/bash

#2017年12月6日10:28:54

#by author daqi

#mysqldump MySQLDB

BAKDIR=/data/backup/mysql/`date +%Y-%m-%d`

MYSQLDB=$*

MYSQLPW=123456

MYSQLUSR=backup

#must use root user run scripts 必须使用root用户运行,$UID为系统变量

if  [ $UID -ne 0 ];then

echo This script must use the root user ! ! !

sleep 2

exit

fi

#判断用户输入参数的个数

if [ -z "$1" ];then

echo -e "\033[36mPlease Select mysqldump MySQLDB:jfedu|taobao|jd|all\033[0m"

exit 0

fi

#Define DIR and mkdir DIR 判断目录是否存在,不存在则新建

if

[ ! -d  $BAKDIR ];then

mkdir  -p  $BAKDIR

fi

#Use mysqldump backup Databases

if [ $1 == "all" ];then

/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW --all-databases >$BAKDIR/ALL_DB.sql

echo  "The $BAKDIR/ALL_DB.sql Mysql  Database backup successfully "

else

for i in `echo $MYSQLDB`

do

/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $i >$BAKDIR/${i}_db.sql

echo  "The mysql databases $BAKDIR/${i}_db.sql successfully "

done

fi

时间: 2024-10-10 22:58:07

Shell 脚本备份MySQL数据库的相关文章

linux shell脚本备份mysql数据库

#!/bin/sh # 备份数据库 # Mysql 用户名密码 MYSQL_USER=root MYSQL_PASS=root BACKUP_DIR=/data/backup/mysql DATA_DIR=/data/backup/dbdata # 查询mysql中所有数据库名字 SQL_STRING="SELECT SCHEMA_NAME AS db FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ('mysql', 'inf

使用shell脚本调用mysql数据库存储过程,并设置定时任务

本来是要mysql数据库中创建事件任务来,定时执行存储过程,做数据传输的...后来由于种种原因,就使用crontab来定时执行,调用存储过程. 实现这个数据传输分为两步: 第一步:编写shell脚本调用mysql数据库存储过程,如下: #!/bin/bash#0 1 * * * sh /home/drmTrans3/rj_proc.shhost1=127.0.0.1user=systempasswd=linuxport=3306mysql -h${host1} -u${user} -p${pas

SHELL 自动备份MYSQL数据库(备份单个数据库及所有数据库)

SHELL 自动备份MYSQL数据库 备份单个数据库及所有数据库 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 部分截图: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657

利用Python脚本备份mysql数据库

近期利用空余时间学习了python的一些基础内容,用来实践,做了一个Mysql备份的脚本,按日备份并打包压缩:python比原来的shell只能运行在linux下面更广泛一些,而且后期扩展也更好. ################################## Functions: 1)按日备份数据库,并将备份文件压缩打包: 2)成功则将备份信息写入日志,失败则发邮件告警给管理员: 3)如果已经备份成功,不再重复备份: 4)稍作改动,可用于WINDOWS备份 ###############

通过shell脚本操作mysql数据库

在做一些日常的运维工作的时候,经常需要些一些shell脚本进行设备性能以及其它参数的监控.在过去的一年工作中,接触到的比较多的是对数据库中某些信息的监控. 于是就想到了用shell+mysql+crontab进行实现. 下面附上通过shell命令行非交互式的操作数据库的方法: mysql -hhostname -Pport -uusername -ppassword -e 相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法. #!/bi

shell脚本操作mysql数据库

使用 mysql -e 参数可以执行各种 sql 的各种操作语句.不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法. 格式:mysql  -hhostname -Pport -uusername -ppassword  -e “”  #!/bin/bash HOSTNAME="192.168.111.84"                                           #数据库信息PORT="3306"USER

shell 脚本迁移mysql数据库中的表

作为写脚本的,这次的重点在于实现了类似于其他语言的logging模块的输出功能.感觉还是蛮有用的,简单直观. 输出log如下所示: 2017-03-31 16:26:57 --- INFO --- You choose the name of the table below: 2017-03-31 16:26:57 --- INFO --- 2016_06_24_record_base_log 2017-03-31 16:26:57 --- INFO --- 2016_06_16_record_

shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作

mysql  -hhostname -Pport -uusername -ppassword  -e  相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法. #!/bin/bash HOSTNAME="192.168.111.84" #数据库信息 PORT="3306" USERNAME="root" PASSWORD="" DBNAME="test_db_

shell 脚本获取MySQL数据库中所有表记录总数

近期遇到一个需求,Mysql数据库中需要统计所有表的记录数据:查了下资料可以调取information_schema数据表中数据获取所有表记录数据,但是查询出来的数据,发现和手动统计的记录数据不一致,information_schema查询出来的数据部分不准确[原因应该是部分表数据没有自动同步].折腾了下,于是还是自己手动写个脚本,分享下也做下次备用.程序结构:#!/bin/bash Author:Jerry tb_name=mysql -u账号 -p密码 -h192.168.x.x -P端口