87 lines
2.4 KiB
Bash
87 lines
2.4 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
echo "=========================================="
|
||
|
|
echo "GameGroup BE - Docker MySQL 安装脚本"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 步骤 1: 将当前用户添加到 docker 组
|
||
|
|
echo "📝 步骤 1/4: 配置 Docker 用户权限..."
|
||
|
|
echo "需要 sudo 权限来将用户添加到 docker 组"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
sudo usermod -aG docker $USER
|
||
|
|
|
||
|
|
echo "✓ 用户已添加到 docker 组"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 步骤 2: 重新加载组权限
|
||
|
|
echo "📝 步骤 2/4: 重新加载用户组..."
|
||
|
|
echo "执行: newgrp docker"
|
||
|
|
echo ""
|
||
|
|
echo "注意:您需要重新登录或执行以下命令来使组权限生效:"
|
||
|
|
echo " newgrp docker"
|
||
|
|
echo "或者"
|
||
|
|
echo " su - $USER"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 步骤 3: 停止可能存在的旧容器
|
||
|
|
echo "📝 步骤 3/4: 清理旧容器(如果存在)..."
|
||
|
|
docker stop gamegroup-mysql 2>/dev/null || echo " 没有运行中的 MySQL 容器"
|
||
|
|
docker rm gamegroup-mysql 2>/dev/null || echo " 没有旧的 MySQL 容器"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 步骤 4: 启动 MySQL 容器
|
||
|
|
echo "📝 步骤 4/4: 启动 MySQL Docker 容器..."
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
docker run -d \
|
||
|
|
--name gamegroup-mysql \
|
||
|
|
--restart always \
|
||
|
|
-p 3306:3306 \
|
||
|
|
-e MYSQL_ROOT_PASSWORD=root \
|
||
|
|
-e MYSQL_DATABASE=gamegroup \
|
||
|
|
-e MYSQL_USER=gamegroup \
|
||
|
|
-e MYSQL_PASSWORD=gamegroup123 \
|
||
|
|
-v gamegroup-mysql-data:/var/lib/mysql \
|
||
|
|
-v "$(pwd)/database/init.sql:/docker-entrypoint-initdb.d/init.sql" \
|
||
|
|
mysql:8.0 \
|
||
|
|
--default-authentication-plugin=mysql_native_password \
|
||
|
|
--character-set-server=utf8mb4 \
|
||
|
|
--collation-server=utf8mb4_unicode_ci
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "✓ MySQL 容器已启动"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 等待 MySQL 启动
|
||
|
|
echo "⏳ 等待 MySQL 初始化(约 10-15 秒)..."
|
||
|
|
sleep 15
|
||
|
|
|
||
|
|
# 检查容器状态
|
||
|
|
echo ""
|
||
|
|
echo "📊 容器状态:"
|
||
|
|
docker ps -a | grep gamegroup-mysql
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "📋 查看容器日志(如果有错误):"
|
||
|
|
docker logs gamegroup-mysql 2>&1 | tail -20
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=========================================="
|
||
|
|
echo "✅ 安装完成!"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
echo "测试连接:"
|
||
|
|
echo " docker exec -it gamegroup-mysql mysql -u gamegroup -pgamegroup123 -e 'SHOW DATABASES;'"
|
||
|
|
echo ""
|
||
|
|
echo "查看日志:"
|
||
|
|
echo " docker logs -f gamegroup-mysql"
|
||
|
|
echo ""
|
||
|
|
echo "停止容器:"
|
||
|
|
echo " docker stop gamegroup-mysql"
|
||
|
|
echo ""
|
||
|
|
echo "启动容器:"
|
||
|
|
echo " docker start gamegroup-mysql"
|
||
|
|
echo ""
|