92 lines
2.7 KiB
Bash
92 lines
2.7 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
# 数据库初始化脚本
|
|||
|
|
|
|||
|
|
echo "=========================================="
|
|||
|
|
echo "数据库初始化脚本"
|
|||
|
|
echo "=========================================="
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# gangyan:Docker 将 MySQL 映到宿主机 33306(见 mysql/docker-compose.yml),勿用 3306 检测/连接
|
|||
|
|
MYSQL_HOST=127.0.0.1
|
|||
|
|
MYSQL_PORT=33306
|
|||
|
|
|
|||
|
|
if ! ss -tln 2>/dev/null | grep -qE ":${MYSQL_PORT}\b"; then
|
|||
|
|
echo "❌ 未监听 ${MYSQL_HOST}:${MYSQL_PORT}(请先启动 gangyan/mysql Docker Compose)"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "请输入MySQL root密码(默认: 1234567890):"
|
|||
|
|
read -s MYSQL_PASSWORD
|
|||
|
|
MYSQL_PASSWORD=${MYSQL_PASSWORD:-1234567890}
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "正在测试MySQL连接(${MYSQL_HOST}:${MYSQL_PORT})..."
|
|||
|
|
mysql -h "$MYSQL_HOST" -P "$MYSQL_PORT" -uroot -p"$MYSQL_PASSWORD" -e "SELECT 1;" 2>/dev/null
|
|||
|
|
|
|||
|
|
if [ $? -ne 0 ]; then
|
|||
|
|
echo "❌ MySQL连接失败,请检查:"
|
|||
|
|
echo " 1. MySQL服务是否运行"
|
|||
|
|
echo " 2. root密码是否正确"
|
|||
|
|
echo " 3. 是否有MySQL客户端工具"
|
|||
|
|
echo ""
|
|||
|
|
echo "如果没有mysql客户端,可以安装:"
|
|||
|
|
echo " sudo apt install mysql-client-core-8.0"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "✅ MySQL连接成功"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# 创建数据库
|
|||
|
|
DB_NAME="chat_gpt_yj"
|
|||
|
|
echo "正在创建数据库: $DB_NAME"
|
|||
|
|
mysql -h "$MYSQL_HOST" -P "$MYSQL_PORT" -uroot -p"$MYSQL_PASSWORD" -e "CREATE DATABASE IF NOT EXISTS \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" 2>/dev/null
|
|||
|
|
|
|||
|
|
if [ $? -eq 0 ]; then
|
|||
|
|
echo "✅ 数据库创建成功"
|
|||
|
|
else
|
|||
|
|
echo "❌ 数据库创建失败"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "正在导入SQL脚本..."
|
|||
|
|
SQL_DIR="$(dirname "$0")/doc/sql"
|
|||
|
|
|
|||
|
|
# 导入顺序很重要
|
|||
|
|
SQL_FILES=(
|
|||
|
|
"sys.sql"
|
|||
|
|
"chat_gpt.sql"
|
|||
|
|
"knowledge_base.sql"
|
|||
|
|
"gpt_folder.sql"
|
|||
|
|
"writter_docs.sql"
|
|||
|
|
"quartz.sql"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
for sql_file in "${SQL_FILES[@]}"; do
|
|||
|
|
if [ -f "$SQL_DIR/$sql_file" ]; then
|
|||
|
|
echo " 导入: $sql_file"
|
|||
|
|
mysql -h "$MYSQL_HOST" -P "$MYSQL_PORT" -uroot -p"$MYSQL_PASSWORD" "$DB_NAME" < "$SQL_DIR/$sql_file" 2>/dev/null
|
|||
|
|
if [ $? -eq 0 ]; then
|
|||
|
|
echo " ✅ 成功"
|
|||
|
|
else
|
|||
|
|
echo " ⚠️ 警告: 导入可能有问题,但继续..."
|
|||
|
|
fi
|
|||
|
|
else
|
|||
|
|
echo " ⚠️ 文件不存在: $sql_file"
|
|||
|
|
fi
|
|||
|
|
done
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "=========================================="
|
|||
|
|
echo "数据库初始化完成!"
|
|||
|
|
echo "=========================================="
|
|||
|
|
echo ""
|
|||
|
|
echo "数据库名: $DB_NAME"
|
|||
|
|
echo "用户名: root"
|
|||
|
|
echo ""
|
|||
|
|
echo "现在可以启动 Java 后端(profile=yj,连 Docker 宿主端口 33306):"
|
|||
|
|
echo " 推荐使用 gangyan/scripts/backend-restart.sh"
|
|||
|
|
echo " 或: java -jar target/chat_web_yj.jar -Dspring.profiles.active=yj \\"
|
|||
|
|
echo " -Dspring.config.additional-location=file:/path/to/gangyan/backend/application-local.yml"
|