install.sh 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. #!/bin/bash -e
  2. # hfy mysql安装程序
  3. # 获取脚本运行所在路径
  4. SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
  5. function runInstallMysql(){
  6. _useConfig=$1
  7. _installMode=$2
  8. w1=1
  9. cd $SCRIPT_DIR
  10. while [[ $w1 == 1 ]]
  11. do
  12. clear
  13. echo "开始安装mysql,请按照提示输入信息";
  14. _Host="0.0.0.0"
  15. _Port=3306
  16. _User="hfygb"
  17. _Passwd="hfygb28181"
  18. _dbName="gb_db"
  19. if [ "$_useConfig" == "1" ]; then
  20. echo "使用配置文件进行安装"
  21. mysqlHost=$mysql_host
  22. mysqlPort=$mysql_port
  23. mysqlUser=$mysql_user
  24. mysqlPasswd=$mysql_passwd
  25. mysqlDB=$mysql_db
  26. w1=2
  27. else
  28. if [ $_installMode == 2 ]
  29. then
  30. read -p "请输入连接地址($_Host): " mysqlHost
  31. fi
  32. mysqlHost=${mysqlHost:-$_Host}
  33. read -p "请输入mysql外部端口($_Port): " mysqlPort
  34. mysqlPort=${mysqlPort:-$_Port}
  35. read -p "请输入账户名($_User): " mysqlUser
  36. mysqlUser=${mysqlUser:-$_User}
  37. read -p "请输入密码($_Passwd): " mysqlPasswd
  38. mysqlPasswd=${mysqlPasswd:-$_Passwd}
  39. read -p "请输入数据库名($_dbName): " mysqlDB
  40. mysqlDB=${mysqlDB:-$_dbName}
  41. # 修改参数
  42. w2=1
  43. while [[ $w2 == 1 ]]
  44. do
  45. echo "
  46. 国标平台数据库信息
  47. 地址:$mysqlHost
  48. 端口:$mysqlPort
  49. 账号:$mysqlUser
  50. 密码:$mysqlPasswd
  51. 库名:$mysqlDB
  52. "
  53. echo "是否确认为此信息?y/n"
  54. read _yn
  55. if [[ $_yn == "y" ]] || [[ $_yn == "yes" ]] || [[ $_yn == "Y" ]] || [[ $_yn == "YES" ]] ; then
  56. echo "确认信息";
  57. w1=2;
  58. break;
  59. elif [[ $_yn == "n" ]] || [[ $_yn == "n" ]] || [[ $_yn == "N" ]] || [[ $_yn == "NO" ]] ; then
  60. echo "重新输入"
  61. w2=2;
  62. else
  63. echo "---------------------"
  64. fi
  65. done
  66. fi
  67. done
  68. echo "数据库信息确认完成"
  69. if [ $_installMode == 2 ];then
  70. echo "导出密码"
  71. return 0
  72. fi
  73. # 开始修改mysql安装配置文件信息
  74. # initShellStr="#! /bin/bash
  75. #mysql -u $mysqlUser -p\$MYSQL_ROOT_PASSWORD <<EOF
  76. #source \$WORK_PATH/\$FILE_0;"
  77. # echo "$initShellStr" > $SCRIPT_DIR"/initDocker.sh"
  78. # 修改sql中的数据
  79. sed -i \
  80. -e "s/^create DATABASE if not exists .*$/create DATABASE if not exists $mysqlDB character set utf8;/g" \
  81. -e "s/^create user .*$/create user '$mysqlUser'@'%' identified by '$mysqlPasswd';/g" \
  82. -e "s/^GRANT all on .*$/GRANT all on $mysqlDB.* TO '$mysqlUser'@'%';GRANT all on $mysqlDB.* TO 'root'@'%';/" \
  83. -e "s/^use .*$/use $mysqlDB;/" \
  84. $SCRIPT_DIR"/init.sql";
  85. # return 0
  86. if [ $? -ne 0 ]; then
  87. echo "change data failed";exit
  88. fi
  89. # 构建镜像
  90. docker build -t hfysql:latest .
  91. if [ $? -ne 0 ]; then
  92. echo "build docker failed";exit
  93. fi
  94. # 修改stop and rm mysqlName
  95. docker stop hfygbmysql
  96. docker rm hfygbmysql
  97. docker run -itd --name hfygbmysql -p "$mysqlPort":3306 -e MYSQL_ROOT_PASSWORD="hfy$mysqlPasswd" hfysql:latest
  98. if [ $? -ne 0 ]; then
  99. echo "run docker failed";
  100. fi
  101. #docker run -itd --name hfygbmysql -p 6543:3306 -e MYSQL_ROOT_PASSWORD=123456 hfysql:latest
  102. # echo "sh \$AUTO_RUN_DIR/\$INSTALL_DATA_SHELL" > docker exec -it hfygbmysql bash
  103. }
  104. clear
  105. echo -e "\033[33m
  106. ----------------------------------------------
  107. --------合方圆国标平台 数据库安装程序---------
  108. ----------------------------------------------
  109. \033[0m";
  110. echo -e "\033[35m 是否通过本安装程序来安装mysql? \033[0m";
  111. PS3="请输入数字来选择安装方式:";
  112. selectOption_1="自动安装并配置 mysql";
  113. selectOption_2="已有 mysql 数据库,手动输入 mysql 相关信息";
  114. select=("$selectOption_1" "$selectOption_2")
  115. installMode=$1
  116. installMode=${installMode:-2}
  117. select fav in "${select[@]}";do
  118. case $fav in
  119. "$selectOption_1")
  120. echo "已选择 $fav"
  121. runInstallMysql "$installMode" 1
  122. break;
  123. ;;
  124. "$selectOption_2")
  125. echo "已选择 $fav "
  126. # todo 手动输入 mysql 配置文件
  127. runInstallMysql "$installMode" 2
  128. break;
  129. ;;
  130. *)
  131. echo -e "\033[37m 请输入数字 1 或者 2 来选择 mysql 的安装方式 \033[0m"
  132. ;;
  133. esac
  134. done
  135. echo "安装完成"
  136. #docker restart hfygbmysql
  137. cd ../