#!/bin/bash
##下载镜像：docker pull mysql:5.7
##配置加载路径：/etc/mysql/conf.d
##启动时创建指定库：MYSQL_DATABASE
##启动时创建用户和指定用户密码：MYSQL_USER, MYSQL_PASSWORD
##启动时加载时区：MYSQL_INITDB_SKIP_TZINFO
word_dir=/data
# 镜像 tag
sql_version=5.7
sql_prot=3306
mysql_root_password=root
# create_database 是否新建库：1 创建、0 不创建; 当等于 1 时，mysql_database、mysql_user、mysql_password不能为空
create_database=0
mysql_database=
mysql_user=
mysql_password=

sql_data=$word_dir/mysql_$sql_version/data
sql_conf=$word_dir/mysql_$sql_version/conf
if [ ! -d $sql_data ];then
   mkdir -p $sql_data
fi
if [ ! -d $sql_conf ];then
   mkdir -p $sql_conf
fi
##判断配置文件是否存在
if [ ! -f $sql_conf/docker.cnf ];then
   wget https://zhanyh-1306410627.cos.ap-hongkong.myqcloud.com/conf/mysql-5.7/docker.cnf -O $sql_conf/docker.cnf
fi

if [ $create_database -eq 1 ];then
if [ -z $mysql_database ];then
   echo "mysql_database 未赋值；如果不需要创建库，请将create_database值改为 0"
   exit
fi
if [ -z $mysql_user ];then
   echo "mysql_user 未赋值；如果不需要创建库，请将create_database值改为 0"
   exit
fi
if [ -z $mysql_password ];then
   echo "mysql_password 未赋值；如果不需要创建库，请将create_database值改为 0"
   exit
fi
docker run -itd --name mysql_$sql_version -p $sql_prot:3306 \
           -e MYSQL_ROOT_PASSWORD=$mysql_root_password \
           -e MYSQL_DATABASE=$mysql_database \
           -e MYSQL_USER=$mysql_user \
           -e MYSQL_PASSWORD=$mysql_password \
           -v /etc/localtime:/etc/localtime \
           -v $sql_data:/var/lib/mysql \
           -v $sql_conf:/etc/mysql/conf.d \
           --restart=always \
           mysql:$sql_version
echo "数据库自定义用户：$mysql_user   密码：$mysql_password  库名：$mysql_database"
else
docker run -itd --name mysql_$sql_version -p $sql_prot:3306 \
           -e MYSQL_ROOT_PASSWORD=$mysql_root_password \
           -v /etc/localtime:/etc/localtime \
           -v $sql_data:/var/lib/mysql \
           -v $sql_conf:/etc/mysql/conf.d \
           --restart=always \
           mysql:$sql_version
fi
echo "数据库管理用户：root   密码：$mysql_root_password"
echo "配置路径：$sql_conf"
echo "数据存储路径：$sql_data"