Files
gangyan/chat_web_backend/init_database.sh

92 lines
2.7 KiB
Bash
Raw Normal View History

#!/bin/bash
# 数据库初始化脚本
echo "=========================================="
echo "数据库初始化脚本"
echo "=========================================="
echo ""
# gangyanDocker 将 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"