Storm_backend/docker/DATABASE-SETUP.md
2025-09-28 20:42:16 +08:00

151 lines
3.5 KiB
Markdown
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.

# 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
```