chore: update project files

This commit is contained in:
AIGC Developer
2025-11-13 17:01:39 +08:00
parent 83bf064bb2
commit 2961d2b0d0
344 changed files with 11549 additions and 15941 deletions

View File

@@ -0,0 +1,224 @@
# 宝塔面板数据库部署指南
## 📋 部署清单
本部署包包含以下文件:
- `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个表
- ✅ 管理员权限设置完成
- ✅ 应用能够成功连接数据库
祝部署顺利!🎉