3.5 KiB
3.5 KiB
Storm数据库部署指南
📋 数据库概览
Storm系统使用三个独立的MySQL数据库:
-
storm
- 主系统数据库- 包含用户、角色、菜单、系统配置等核心数据
- 文件:
dump-storm-202509032128.sql
-
storm-config
- 配置数据库- 包含Nacos配置中心的数据
- 文件:
dump-storm-config-202509041019.sql
-
storm-device
- 设备数据库- 包含设备管理相关的数据
- 文件:
dump-storm-device-202509032130.sql
🚀 部署步骤
1. 确保SQL文件存在
检查以下文件是否存在于 mysql/db/
目录:
mysql/db/
├── 00-init-all-databases.sql # 数据库初始化脚本
├── dump-storm-202509032128.sql # 主系统数据库
├── dump-storm-config-202509041019.sql # 配置数据库
└── dump-storm-device-202509032130.sql # 设备数据库
2. 启动MySQL服务
# 启动基础服务(包含MySQL)
cd D:\workspace\storm\docker
./deploy.sh base
3. 验证数据库创建
# Windows
test-databases.bat
# Linux/Mac
chmod +x test-databases.sh
./test-databases.sh
4. 手动验证(可选)
# 连接MySQL
mysql -h localhost -P 3306 -u root -p123456
# 查看所有数据库
SHOW DATABASES;
# 检查每个数据库的表
USE storm;
SHOW TABLES;
USE `storm-config`;
SHOW TABLES;
USE `storm-device`;
SHOW TABLES;
🔧 故障排除
问题1:只创建了一个数据库
原因:SQL文件执行顺序问题或文件权限问题
解决方案:
- 确保所有SQL文件都在
mysql/db/
目录中 - 检查文件权限(Linux/Mac)
- 重新构建MySQL容器:
docker-compose down docker-compose build storm-mysql docker-compose up -d storm-mysql
问题2:数据库名称包含特殊字符
原因:storm-config
和 storm-device
包含连字符
解决方案:
- 在SQL中使用反引号包围数据库名:
`storm-config`
- 在应用程序连接时也要使用反引号
问题3:字符集问题
原因:字符集不统一
解决方案:
- 所有数据库都使用
utf8mb4
字符集 - 确保MySQL容器配置正确
📊 数据库连接配置
应用程序配置
# 主系统数据库
spring:
datasource:
url: jdbc:mysql://storm-mysql:3306/storm?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
# 配置数据库
nacos:
datasource:
url: jdbc:mysql://storm-mysql:3306/storm-config?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
# 设备数据库
device:
datasource:
url: jdbc:mysql://storm-mysql:3306/storm-device?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
✅ 验证清单
部署完成后,请确认:
- 三个数据库都已创建
- 每个数据库都包含相应的表
- 应用程序能正常连接各个数据库
- 数据导入成功
- 字符集设置正确
🔄 重新初始化
如果需要重新初始化所有数据库:
# 停止服务
docker-compose down
# 删除MySQL数据卷
docker volume rm storm_mysql_data
# 重新启动
docker-compose up -d storm-mysql
# 等待初始化完成
sleep 30
# 验证数据库
test-databases.bat