Files
gamegroup/setup-docker-mysql.sh

87 lines
2.4 KiB
Bash
Raw Normal View History

#!/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 ""