123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- #!/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 <<EOF
- #source \$WORK_PATH/\$FILE_0;"
- # echo "$initShellStr" > $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 ../
|