实战-自动备份mysql数据库脚本
从centos7.0开始,系统中自带的mysql数据库包,改为mariadb数据库。
MariaDB数据库概述:MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。MariaDB由MySQL的创始人Michael Widenius(迈克尔·维德纽斯)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria(玛丽亚)的名字。
甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 过去一年中,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。
安装mariadb数据库:
# yum install -y mariadb mariadb-server -y
# mariadb 是mysql的客户端命令 ;mariadb mariadb-server 是mysql服务端命令
# rpm -qf /usr/bin/mysql
mariadb-5.5.56-2.el7.x86_64
# systemctl start mariadb
登录mysql:
# mysqladmin -u root password "123456" #给root用户配置一个密码123456
# mysql -u root -p123456 #登录mysql数据库
MariaDB [(none)]> show databases;
MariaDB [(none)]> create database xuegod ; #创建xuegod数据库
MariaDB [(none)]> use xuegod #选择数据库
MariaDB [xuegod]> create table user (id int); #创建user表,只有一个id字段
MariaDB [xuegod]> insert into user values(1); #插入一条记录,id字段值1
MariaDB [xuegod]> insert into user values(2); #插入一条记录,id字段值2
MariaDB [xuegod]> select * from user; #查看表中的数据
+------+
| id |
+------+
| 1 |
| 2 |
+------+
mysql自动化备份脚本:
思路:
1、检查一下运行环境: 目录是否存在,时间,权限,用户
2、运行要执行的命令:备份,导出数据。。。
3、把命令执行过程中的没有用的文件删除一下
4、弹出命令运行成功的消息
[root@localhost shell]# cat mysql-back-auto.sh
#!/bin/sh #auto backup mysql #Define PATH定义变量 BAKDIR=/data/backup/mysql/`date +%Y-%m-%d` MYSQLDB=xuegod #mysql数据库库名 MYSQLUSR=root #mysql数据库用户名 MYSQLPW=123456 #mysql数据库密码 #must use root user run scripts 必须使用root用户运行,$UID为系统变量 if [ $UID -ne 0 ];then echo This script must use the root user ! ! ! sleep 2 exit 0 fi #Define DIR and mkdir DIR 判断目录是否存在,不存在则新建 if [ ! -d $BAKDIR ];then mkdir -p $BAKDIR else echo This is $BAKDIR exists.... exit fi #Use mysqldump backup mysql 使用mysqldump备份数据库 /usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW $MYSQLDB > $BAKDIR/${MYSQLDB}_db.sql cd $BAKDIR ; tar -czf ${MYSQLDB}_db.tar.gz *.sql #查找备份目录下以.sql结尾的文件并删除 find $BAKDIR -type f -name *.sql -exec rm -rf {} \; #或 #如果数据库备份成功,则打印成功,并删除备份目录30天以前的目录 [ $? -eq 0 ] && echo “This `date +%Y-%m-%d` MySQL BACKUP is SUCCESS” cd /data/backup/mysql/ && find . -type d -mtime +30 |xargs rm -rf echo "The mysql backup successfully "