2025-07-11 15:29:39 +08:00

103 lines
2.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
echo "开始初始化旅游内容创作系统数据库..."
# 检查MySQL是否安装
if ! command -v mysql &> /dev/null; then
echo "错误: MySQL未安装请先安装MySQL"
exit 1
fi
# 询问MySQL root密码
read -sp "请输入MySQL root密码如果没有设置请直接回车: " MYSQL_ROOT_PASSWORD
echo ""
# 创建环境变量配置文件
cat > .env.db <<EOF
# 数据库环境变量配置
DB_HOST=localhost
DB_USER=travel_user
DB_PASSWORD=travel123
DB_NAME=travel_content
DB_PORT=3306
EOF
echo "已创建环境变量配置文件 .env.db"
echo "可以通过以下命令加载环境变量:"
echo "source .env.db"
# 自动加载环境变量
source .env.db
echo "已自动加载环境变量"
# 根据是否有密码使用不同的命令执行SQL脚本
echo "执行SQL脚本创建数据库和表..."
if [ -z "$MYSQL_ROOT_PASSWORD" ]; then
# 无密码
mysql -u root <<EOF
-- 创建数据库
CREATE DATABASE IF NOT EXISTS travel_content DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建用户并授权
CREATE USER IF NOT EXISTS 'travel_user'@'localhost' IDENTIFIED BY 'travel123';
GRANT ALL PRIVILEGES ON travel_content.* TO 'travel_user'@'localhost';
GRANT ALL PRIVILEGES ON travel_content.* TO 'root'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 使用数据库
USE travel_content;
-- 执行完整的SQL脚本
source db/init_database.sql;
EOF
else
# 有密码
mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<EOF
-- 创建数据库
CREATE DATABASE IF NOT EXISTS travel_content DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建用户并授权
CREATE USER IF NOT EXISTS 'travel_user'@'localhost' IDENTIFIED BY 'travel123';
GRANT ALL PRIVILEGES ON travel_content.* TO 'travel_user'@'localhost';
GRANT ALL PRIVILEGES ON travel_content.* TO 'root'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 使用数据库
USE travel_content;
-- 执行完整的SQL脚本
source db/init_database.sql;
EOF
fi
# 检查执行结果
if [ $? -eq 0 ]; then
echo "数据库初始化成功!"
echo "数据库名称: travel_content"
echo "用户: travel_user (密码: travel123)"
# 显示表信息
echo "已创建表:"
mysql -u travel_user -ptravel123 -e "USE travel_content; SHOW TABLES;"
# 更新配置文件
cat > config/database.json <<EOF
{
"host": "\${DB_HOST:-localhost}",
"user": "\${DB_USER:-travel_user}",
"password": "\${DB_PASSWORD:-travel123}",
"database": "\${DB_NAME:-travel_content}",
"port": "\${DB_PORT:-3306}",
"charset": "utf8mb4"
}
EOF
echo "已更新数据库配置文件"
else
echo "数据库初始化失败,请检查错误信息"
fi
echo "初始化完成"