# Storm数据库部署指南 ## 📋 数据库概览 Storm系统使用三个独立的MySQL数据库: 1. **`storm`** - 主系统数据库 - 包含用户、角色、菜单、系统配置等核心数据 - 文件:`dump-storm-202509032128.sql` 2. **`storm-config`** - 配置数据库 - 包含Nacos配置中心的数据 - 文件:`dump-storm-config-202509041019.sql` 3. **`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服务 ```bash # 启动基础服务(包含MySQL) cd D:\workspace\storm\docker ./deploy.sh base ``` ### 3. 验证数据库创建 ```bash # Windows test-databases.bat # Linux/Mac chmod +x test-databases.sh ./test-databases.sh ``` ### 4. 手动验证(可选) ```bash # 连接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文件执行顺序问题或文件权限问题 **解决方案**: 1. 确保所有SQL文件都在 `mysql/db/` 目录中 2. 检查文件权限(Linux/Mac) 3. 重新构建MySQL容器: ```bash 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容器配置正确 ## 📊 数据库连接配置 ### 应用程序配置 ```yaml # 主系统数据库 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 ``` ## ✅ 验证清单 部署完成后,请确认: - [ ] 三个数据库都已创建 - [ ] 每个数据库都包含相应的表 - [ ] 应用程序能正常连接各个数据库 - [ ] 数据导入成功 - [ ] 字符集设置正确 ## 🔄 重新初始化 如果需要重新初始化所有数据库: ```bash # 停止服务 docker-compose down # 删除MySQL数据卷 docker volume rm storm_mysql_data # 重新启动 docker-compose up -d storm-mysql # 等待初始化完成 sleep 30 # 验证数据库 test-databases.bat ```