Files
AIGC/demo/database_baota_deploy/宝塔数据库部署指南.md
2025-11-13 17:01:39 +08:00

225 lines
6.3 KiB
Markdown
Raw Permalink 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.

# 宝塔面板数据库部署指南
## 📋 部署清单
本部署包包含以下文件:
- `init_database.sql` - 完整的数据库初始化脚本(推荐使用)
- `update_admin_user.sql` - 管理员权限设置脚本
- `数据库完整结构-宝塔导入.sql` - 备用完整结构文件
## 🚀 快速部署步骤
### 第一步:创建数据库
1. 登录宝塔面板
2. 进入【数据库】菜单
3. 点击【添加数据库】
4. 填写以下信息:
- **数据库名**: `aigc_platform`
- **用户名**: `aigc_platform`(建议与数据库名相同)
- **密码**: 自动生成或自定义(请记录下来)
- **字符集**: `utf8mb4`
- **排序规则**: `utf8mb4_unicode_ci`
5. 点击【提交】创建数据库
### 第二步:导入数据库结构
#### 方式一使用phpMyAdmin推荐
1. 在宝塔面板【数据库】列表中,找到 `aigc_platform` 数据库
2. 点击右侧的【管理】按钮,进入 phpMyAdmin
3. 点击顶部菜单【导入】
4. 点击【选择文件】,选择 `init_database.sql`
5. 确保以下设置:
- 字符集:`utf8mb4`
- 格式:`SQL`
6. 点击页面底部【执行】按钮
7. 等待导入完成,显示成功提示
#### 方式二:使用命令行
```bash
# SSH登录服务器后执行
mysql -u aigc_platform -p aigc_platform < init_database.sql
# 输入数据库密码后回车
```
### 第三步:设置管理员权限
导入完成后,需要设置管理员账号权限:
#### 方式一自动设置已包含在init_database.sql中
如果使用 `init_database.sql` 导入,管理员权限已自动设置,无需额外操作。
#### 方式二:手动设置
如果需要手动设置或更改管理员,可以执行 `update_admin_user.sql`
1. 在 phpMyAdmin 中点击【SQL】标签
2.`update_admin_user.sql` 的内容粘贴到文本框
3. 点击【执行】
或者直接在SQL中执行
```sql
UPDATE users
SET role = 'ROLE_ADMIN',
updated_at = CURRENT_TIMESTAMP
WHERE email = '984523799@qq.com';
```
### 第四步:验证数据库
在 phpMyAdmin 或命令行中执行以下查询,验证表结构是否正确:
```sql
-- 查看所有表
SHOW TABLES;
-- 验证管理员用户(如果已注册)
SELECT id, username, email, role, points, created_at
FROM users
WHERE email = '984523799@qq.com';
```
应该看到以下表:
- `users` - 用户表
- `payments` - 支付表
- `orders` - 订单表
- `order_items` - 订单项表
- `text_to_video_tasks` - 文生视频任务表
- `image_to_video_tasks` - 图生视频任务表
- `storyboard_video_tasks` - 分镜视频任务表
- `task_queue` - 任务队列表
- `task_status` - 任务状态表
- `user_works` - 用户作品表
- `user_membership` - 会员表
- `user_activity_stats` - 用户活动统计表
- `failed_tasks_cleanup_log` - 失败任务清理日志表
## 📝 数据库配置信息
部署完成后,需要在应用配置文件中填写数据库信息:
**文件位置**: `src/main/resources/application-prod.properties`
```properties
# 数据库配置
spring.datasource.url=jdbc:mysql://服务器IP:3306/aigc_platform?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
spring.datasource.username=aigc_platform
spring.datasource.password=你的数据库密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
```
**重要参数说明**
- `服务器IP`:
- 如果应用与数据库在同一服务器:使用 `localhost``127.0.0.1`
- 如果数据库在其他服务器使用数据库服务器的IP地址
- `你的数据库密码`: 第一步创建数据库时设置的密码
## 🔒 安全建议
### 1. 数据库访问权限
- 在宝塔面板【数据库】中,点击数据库的【权限】
- 如果应用和数据库在同一服务器,设置为【本地服务器】
- 如果需要远程访问设置【所有人】或指定IP但要确保密码强度足够
### 2. 数据库密码强度
- 使用包含大小写字母、数字、特殊字符的强密码
- 密码长度建议16位以上
### 3. 定期备份
在宝塔面板设置自动备份:
1. 进入【计划任务】
2. 添加【备份数据库】任务
3. 选择 `aigc_platform` 数据库
4. 设置备份周期(建议每天备份)
5. 设置保留份数建议保留7-30份
## ⚙️ 数据库性能优化
### 1. 连接池配置已包含在application配置中
```properties
# 连接池配置支持50-100人并发
spring.datasource.hikari.maximum-pool-size=50
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.idle-timeout=300000
spring.datasource.hikari.max-lifetime=1200000
spring.datasource.hikari.connection-timeout=30000
```
### 2. MySQL配置优化
在宝塔面板【软件商店】->【MySQL】->【设置】->【配置修改】中调整:
```ini
# 根据服务器内存调整示例为4GB内存
innodb_buffer_pool_size = 1G
max_connections = 500
query_cache_size = 128M
tmp_table_size = 64M
max_heap_table_size = 64M
```
## 🐛 常见问题
### 1. 导入失败:字符集错误
**解决方案**
- 确保数据库字符集为 `utf8mb4`
- 在导入时选择字符集为 `utf8mb4`
### 2. 连接失败Access denied
**解决方案**
- 检查数据库用户名和密码是否正确
- 检查数据库访问权限设置
### 3. 表已存在错误
**解决方案**
- 如果是重新部署,先删除旧数据库或清空所有表
- 在 phpMyAdmin 中选择数据库,点击【操作】->【清空数据库】
### 4. 管理员权限未生效
**原因**:用户还未注册
**解决方案**
1. 先在前端使用 `984523799@qq.com` 注册账号
2. 注册完成后,数据库会自动将该用户设置为管理员(因为 `data.sql` 中有自动更新脚本)
3. 或者注册后手动执行 `update_admin_user.sql`
## 📊 数据库监控
在宝塔面板可以监控数据库状态:
1. 进入【数据库】菜单
2. 点击数据库名称右侧的【监控】
3. 查看:
- 查询次数
- 慢查询
- 连接数
- 缓存命中率
## 📞 技术支持
如遇到问题,请检查:
1. 宝塔面板【日志】中的 MySQL 错误日志
2. 应用日志中的数据库连接错误
3. 确保 MySQL 服务正在运行
---
**部署完成标志**
- ✅ 数据库创建成功
- ✅ 表结构导入成功13个表
- ✅ 管理员权限设置完成
- ✅ 应用能够成功连接数据库
祝部署顺利!🎉