fix: deploy.sh 用 printf 管道执行 SQL,避免密码含 @ 等特殊字符导致失败

这个提交包含在:
徐勤民 2026-06-19 00:34:48 +08:00
父节点 c161118e8a
当前提交 cf09a1a311

查看文件

@ -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