#!/bin/bash -e # hfy mysql安装程序 # 获取脚本运行所在路径 SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd) function runInstallMysql(){ _useConfig=$1 _installMode=$2 w1=1 cd $SCRIPT_DIR while [[ $w1 == 1 ]] do clear echo "开始安装mysql,请按照提示输入信息"; _Host="0.0.0.0" _Port=3306 _User="hfygb" _Passwd="hfygb28181" _dbName="gb_db" if [ "$_useConfig" == "1" ]; then echo "使用配置文件进行安装" mysqlHost=$mysql_host mysqlPort=$mysql_port mysqlUser=$mysql_user mysqlPasswd=$mysql_passwd mysqlDB=$mysql_db w1=2 else if [ $_installMode == 2 ] then read -p "请输入连接地址($_Host): " mysqlHost fi mysqlHost=${mysqlHost:-$_Host} read -p "请输入mysql外部端口($_Port): " mysqlPort mysqlPort=${mysqlPort:-$_Port} read -p "请输入账户名($_User): " mysqlUser mysqlUser=${mysqlUser:-$_User} read -p "请输入密码($_Passwd): " mysqlPasswd mysqlPasswd=${mysqlPasswd:-$_Passwd} read -p "请输入数据库名($_dbName): " mysqlDB mysqlDB=${mysqlDB:-$_dbName} # 修改参数 w2=1 while [[ $w2 == 1 ]] do echo " 国标平台数据库信息 地址:$mysqlHost 端口:$mysqlPort 账号:$mysqlUser 密码:$mysqlPasswd 库名:$mysqlDB " echo "是否确认为此信息?y/n" read _yn if [[ $_yn == "y" ]] || [[ $_yn == "yes" ]] || [[ $_yn == "Y" ]] || [[ $_yn == "YES" ]] ; then echo "确认信息"; w1=2; break; elif [[ $_yn == "n" ]] || [[ $_yn == "n" ]] || [[ $_yn == "N" ]] || [[ $_yn == "NO" ]] ; then echo "重新输入" w2=2; else echo "---------------------" fi done fi done echo "数据库信息确认完成" if [ $_installMode == 2 ];then echo "导出密码" return 0 fi # 开始修改mysql安装配置文件信息 # initShellStr="#! /bin/bash #mysql -u $mysqlUser -p\$MYSQL_ROOT_PASSWORD < $SCRIPT_DIR"/initDocker.sh" # 修改sql中的数据 sed -i \ -e "s/^create DATABASE if not exists .*$/create DATABASE if not exists $mysqlDB character set utf8;/g" \ -e "s/^create user .*$/create user '$mysqlUser'@'%' identified by '$mysqlPasswd';/g" \ -e "s/^GRANT all on .*$/GRANT all on $mysqlDB.* TO '$mysqlUser'@'%';GRANT all on $mysqlDB.* TO 'root'@'%';/" \ -e "s/^use .*$/use $mysqlDB;/" \ $SCRIPT_DIR"/init.sql"; # return 0 if [ $? -ne 0 ]; then echo "change data failed";exit fi # 构建镜像 docker build -t hfysql:latest . if [ $? -ne 0 ]; then echo "build docker failed";exit fi # 修改stop and rm mysqlName docker stop hfygbmysql docker rm hfygbmysql docker run -itd --name hfygbmysql -p "$mysqlPort":3306 -e MYSQL_ROOT_PASSWORD="hfy$mysqlPasswd" hfysql:latest if [ $? -ne 0 ]; then echo "run docker failed"; fi #docker run -itd --name hfygbmysql -p 6543:3306 -e MYSQL_ROOT_PASSWORD=123456 hfysql:latest # echo "sh \$AUTO_RUN_DIR/\$INSTALL_DATA_SHELL" > docker exec -it hfygbmysql bash } clear echo -e "\033[33m ---------------------------------------------- --------合方圆国标平台 数据库安装程序--------- ---------------------------------------------- \033[0m"; echo -e "\033[35m 是否通过本安装程序来安装mysql? \033[0m"; PS3="请输入数字来选择安装方式:"; selectOption_1="自动安装并配置 mysql"; selectOption_2="已有 mysql 数据库,手动输入 mysql 相关信息"; select=("$selectOption_1" "$selectOption_2") installMode=$1 installMode=${installMode:-2} select fav in "${select[@]}";do case $fav in "$selectOption_1") echo "已选择 $fav" runInstallMysql "$installMode" 1 break; ;; "$selectOption_2") echo "已选择 $fav " # todo 手动输入 mysql 配置文件 runInstallMysql "$installMode" 2 break; ;; *) echo -e "\033[37m 请输入数字 1 或者 2 来选择 mysql 的安装方式 \033[0m" ;; esac done echo "安装完成" #docker restart hfygbmysql cd ../