Эх сурвалжийг харах

添加轮询等待sql启动功能

kindring 2 жил өмнө
parent
commit
14064ae0a7

+ 1 - 1
package/buildDockerImage.sh

@@ -55,7 +55,7 @@ cp ./gbDocker/createConfig.sh ./result/gbRunning/createConfig.sh
 cp ./config.cfg ./result/config.cfg
 cp ./startDockerImage.sh ./result/startDockerImage.sh
 cp ./redisDocker/redis.conf ./result/redis/redis.conf
-
+cp ./updateSqlImage.sh ./result/updateSqlImage.sh
 # 为result目录下的文件添加读写权限
 chmod -R 777 ./result
 

+ 19 - 2
package/startDockerImage.sh

@@ -106,8 +106,22 @@ fi
 echo "检查是否需要配置sql"
 sleep 2
 if [ "$enable_sql" == "1" ];then
-    echo "等待sql启动,等待60秒"
-    sleep 60
+    echo "等待尝试修改数据库参数"
+    isTrue=1
+    while [[ $isTrue == 1 ]]
+    do
+        # 尝试连接数据库
+        docker exec -it hfysql mysql \
+        -uroot -p"hfy$sql_passwd" \
+        -e "show databases;"
+        if [ $? -eq 0 ]; then
+            isTrue=0
+        else
+            echo "数据库连接失败,等待3秒后重试"
+            sleep 3
+        fi
+    done
+
     docker ps -a | grep hfysql
     if [ $? -eq 0 ]; then
         # 导出数据库
@@ -133,6 +147,9 @@ if [ "$enable_sql" == "1" ];then
     docker exec -it hfysql mysql \
       -uroot -p"hfy$sql_passwd" \
       -e "FLUSH PRIVILEGES;"
+    if [ $? -ne 0 ]; then
+      echo "run gb docker failed";
+    fi
 fi
 
 echo "开始启动国标平台"

+ 34 - 0
package/updateSqlImage.sh

@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# 加载配置文件
+source ./config.cfg
+# 检查必要启动参数是否存在
+if [ "$enable_sql" == "1" ];then
+    echo "等待sql启动"
+    docker ps -a | grep hfysql
+    if [ $? -eq 0 ]; then
+        # 导出数据库
+        echo "mysql 数据库已经启动"
+    else
+        echo "mysql 数据库启动失败"
+        docker logs hfysql
+        exit 1
+    fi
+    #  修改数据库名,无法修改数据库名,拒绝操作
+#    docker exec -it hfysql mysql \
+#     -uroot -p"hfy$sql_passwd" \
+#     -e "ALTER DATABASE gb_db TO $sql_db;"
+    # 创建单独用户
+    docker exec -it hfysql mysql \
+     -uroot -p"hfy$sql_passwd" \
+     -e "CREATE USER '$sql_user'@'%' IDENTIFIED BY '$sql_passwd';"
+    # 不限制ip访问
+    docker exec -it hfysql mysql \
+      -uroot -p"hfy$sql_passwd" \
+      -e "GRANT ALL PRIVILEGES ON $sql_db.* TO '$sql_user'@'%';"
+    # 刷新权限
+    docker exec -it hfysql mysql \
+      -uroot -p"hfy$sql_passwd" \
+      -e "FLUSH PRIVILEGES;"
+
+fi