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