文档章节

mysql 自动化脚本

罗布V
 罗布V
发布于 2016/11/01 11:44
字数 371
阅读 8
收藏 1
#!/bin/ash


USER="root"
NEWUSER="xxx"
PASSWORD="xxxx"
NEWPASSWORD="xxxxxxxxxx"
DATE=`date +%Y/%m/%d`
OUTPUT="/mnt/data/database/$DATE"
OPERATOR="export"
FILES="/tmp/database/*"
DATABASEPATH="/mnt/db/mysql"
TMPPATH="/mnt/db/tmp"
echo $OUTPUT
[ ! -d "$OUTPUT" ] && {
    echo "mkdir $OUTPUT"
    mkdir -p $OUTPUT
}
#数据为初始化
action_init(){
    flag=$(uci get -q system.@general[0].databaseinit)
    [ ! -z "$flag" ] && return
	[  -z "$flag" ] && {
        section=$(uci get -q system.@general[0])
		[ -z "$section" ] &&{
			uci add system general
		}
		uci set system.@general[0].databaseinit=1
        uci commit system
	}
    [ -d "$DATABASEPATH" ] && rm -rf $DATABASEPATH
    [ -d "$TMPPATH" ] && rm -rf $TMPPATH
    sed -i "s,^datadir.*,datadir         = \"$DATABASEPATH\",g" /etc/my.cnf
    sed -i 's,^tmpdir.*,tmpdir          = "/mnt/db/tmp",g' /etc/my.cnf
    [ ! -d "$DATABASEPATH" ] && mkdir -p $DATABASEPATH
    [ ! -d "$TMPPATH" ] && mkdir -p $TMPPATH
    mysql_install_db --force
    /etc/init.d/mysqld start
    /etc/init.d/mysqld enable
    mysqladmin -u  $USER password "$PASSWORD"
    [ -f /tmp/adduser.sql ] && rm -rf /tmp/adduser.sql
    echo "insert into mysql.user(Host,User,Password) values(\"localhost\",\"$NEWUSER\",password(\"$NEWPASSWORD\"));">/tmp/adduser.sql
    echo "GRANT ALL PRIVILEGES ON *.* TO \"$NEWUSER\"@\"localhost\" IDENTIFIED BY \"$NEWPASSWORD\"; "
    echo "GRANT ALL PRIVILEGES ON *.* TO \"$NEWUSER\"@\"localhost\" IDENTIFIED BY \"$NEWPASSWORD\"; ">>/tmp/adduser.sql
    echo "flush privileges;">>/tmp/adduser.sql
    mysql -u $USER -p$PASSWORD < /tmp/adduser.sql
    rm -rf /tmp/adduser.sql
}
#数据库导出
action_export(){
    databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
    echo "backup start"
    for db in $databases; do
        if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
            echo "Dumping database: $db"
            [ -f $OUTPUT/`date +%Y%m%d`.$db.sql ] && {
                echo "rm sql file"
                rm -rf $OUTPUT/`date +%Y%m%d`.$db.sql
            }
            mysqldump -u $NEWUSER -p$NEWPASSWORD --databases $db > $OUTPUT/`date +%Y%m%d`.$db.sql
            [ -f $OUTPUT/`date +%Y%m%d`.$db.sql.gz ] && {
                echo "rm file"
                rm -rf $OUTPUT/`date +%Y%m%d`.$db.sql.gz
            }
            gzip $OUTPUT/`date +%Y%m%d`.$db.sql
            rm -rf $OUTPUT/`date +%Y%m%d`.$db.sql
        fi
    done
    echo "backup end"
}
#数据库导入
action_import(){
    for f in $FILES
    do
        [ -f "$f" ] &&{
            echo "Processing $f file..."
            mysql -u $NEWUSER -p$NEWPASSWORD < $f
        }
    done
}
[ ! -z "$1" ] && OPERATOR=$1
[ ! -z "$2" ] && USER=$2
[ ! -z "$3" ] && PASSWORD=$3


if [ "$OPERATOR" == "export" ]; then
    action_export
elif [ "$OPERATOR" == "import" ]; then
    action_import
elif [ "$OPERATOR" == "init" ]; then
    action_init
fi


© 著作权归作者所有

共有 人打赏支持
上一篇: ngrok平台搭建
下一篇: es6 模板字符串
罗布V
粉丝 13
博文 60
码字总数 47114
作品 0
温州
程序员
私信 提问
实战-Mysql5.6.36脚本编译安装及初始化

概述 本文为centos7.3自动化编译安装mysql5.3.6的脚本及后续初始化操作,话不多少,直接上脚本。 安装脚本install.py如下: 配置文件my.cnf 使用方法: 1.操作系统需要配置yum源 2.操作系统版...

sdhzdtwhm
2017/12/12
0
0
使用ruby的fpm模块实现对二进制MySQL的RPM包制作,实现一键安装

随着互联网的发展,一些互联网企业,甚至于传统企业的服务器也是越来越多。将面临的挑战其中之一就是自动化运维管理。假设我们需要自动化部署很多的应用,而这些应用又很复杂,过程多,需要源...

蓝色_风暴
2017/08/09
0
0
ansible-playbook基于role的配置一键安装zabbix客户端以及拉取自定义监控脚本

在IT工作中,您可能会一遍又一遍地执行相同的任务;没有人喜欢重复的任务。通过Ansible,IT管理员可以开始自动化日常任务中的苦差事。自动化解放了管理人员,专注于通过加快应用交付时间和建...

legehappy
05/08
0
0
Shell脚本中执行mysql语句

对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本。本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美...

Carl_
2015/02/26
0
0
【目录】mysql 学习

数据库排行榜 http://db-engines.com/en/ranking [MySQL运维] mysql 5.1 升级编译安装5.6把原MyISAM表转换成InnoDB,并全局备份一次【原创】 http://990487026.blog.51cto.com/10133282/169...

990487026
2015/09/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

进程管理利器Supervisor--centos7下安装与卸载

目录 概述 环境准备 检查python环境 在线安装 配置Supervisor 启动并验证 概述 Supervisor的安装可以有在线安装和离线安装两种方式。安装方式取决于服务器是否联网,联网的话可采用在线安装,...

java_龙
9分钟前
1
0
spring系列汇总

spring spring-基于可扩展Schema的特性自定义标签 springmvc-同一个访问资源,多种视图解析方式 spring cache 配置使用aspectj模式织入 基于注解的spring缓存,轻松无侵入解决cache问题 spri...

细肉云吞
10分钟前
0
0
vsftpd搭建ftp

12月10日任务 14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp exportfs命令 在nfs运行后的一段时间内,如果需要添加共享目录,这时需要修改exports文件,并...

robertt15
12分钟前
1
0
numpy常用操作

水平合并数组 import numpy as npa = [1,2,3]b = [4,5,6]np.hstack((a,b))# array([1, 2, 3, 4, 5, 6])c = [a,['a','b','c']]d = [b,['d','e','f']]np.hstack((c,d))#array([['1'......

datadev_sh
28分钟前
2
0
四种检测异常值的常用技术简述

摘要: 本文介绍了异常值检测的常见四种方法,分别为Numeric Outlier、Z-Score、DBSCAN以及Isolation Forest 在训练机器学习算法或应用统计技术时,错误值或异常值可能是一个严重的问题,它们...

阿里云官方博客
31分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部