From cf09a1a3111659ec1217a8a905b6c442e6a07438 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Fri, 19 Jun 2026 00:34:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20deploy.sh=20=E7=94=A8=20printf=20?= =?UTF-8?q?=E7=AE=A1=E9=81=93=E6=89=A7=E8=A1=8C=20SQL=EF=BC=8C=E9=81=BF?= =?UTF-8?q?=E5=85=8D=E5=AF=86=E7=A0=81=E5=90=AB=20@=20=E7=AD=89=E7=89=B9?= =?UTF-8?q?=E6=AE=8A=E5=AD=97=E7=AC=A6=E5=AF=BC=E8=87=B4=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/deploy.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 8ddafa6..abea069 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -611,12 +611,11 @@ done # 创建 bugcollect 数据库(独立库,Flyway 自动建表) MYSQL_CTR_INIT="$(docker ps -qf name=mysql | head -1)" -docker exec "$MYSQL_CTR_INIT" mysql -u root -p"${MYSQL_ROOT_PASSWORD}" -e \ - "CREATE DATABASE IF NOT EXISTS xuqm_bugcollect DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>/dev/null \ - && docker exec "$MYSQL_CTR_INIT" mysql -u root -p"${MYSQL_ROOT_PASSWORD}" -e \ - "GRANT ALL PRIVILEGES ON xuqm_bugcollect.* TO '${MYSQL_USERNAME}'@'%'; FLUSH PRIVILEGES;" 2>/dev/null \ +# 用 printf 写 SQL 文件再执行,避免密码含特殊字符(如 @)导致 shell 解析失败 +printf "CREATE DATABASE IF NOT EXISTS xuqm_bugcollect DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nGRANT ALL PRIVILEGES ON xuqm_bugcollect.* TO '%s'@'%%';\nFLUSH PRIVILEGES;\n" "$MYSQL_USERNAME" \ + | docker exec -i "$MYSQL_CTR_INIT" mysql -u root -p"${MYSQL_ROOT_PASSWORD}" 2>/dev/null \ && ok "xuqm_bugcollect 数据库已创建" \ - || warn "xuqm_bugcollect 数据库创建失败(可能已存在或密码含特殊字符,需手动创建)" + || warn "xuqm_bugcollect 数据库创建失败(可能已存在,需手动创建)" # 等待 Redis 就绪 for i in $(seq 1 10); do