6.3 KiB
6.3 KiB
宝塔面板数据库部署指南
📋 部署清单
本部署包包含以下文件:
init_database.sql- 完整的数据库初始化脚本(推荐使用)update_admin_user.sql- 管理员权限设置脚本数据库完整结构-宝塔导入.sql- 备用完整结构文件
🚀 快速部署步骤
第一步:创建数据库
- 登录宝塔面板
- 进入【数据库】菜单
- 点击【添加数据库】
- 填写以下信息:
- 数据库名:
aigc_platform - 用户名:
aigc_platform(建议与数据库名相同) - 密码: 自动生成或自定义(请记录下来)
- 字符集:
utf8mb4 - 排序规则:
utf8mb4_unicode_ci
- 数据库名:
- 点击【提交】创建数据库
第二步:导入数据库结构
方式一:使用phpMyAdmin(推荐)
- 在宝塔面板【数据库】列表中,找到
aigc_platform数据库 - 点击右侧的【管理】按钮,进入 phpMyAdmin
- 点击顶部菜单【导入】
- 点击【选择文件】,选择
init_database.sql - 确保以下设置:
- 字符集:
utf8mb4 - 格式:
SQL
- 字符集:
- 点击页面底部【执行】按钮
- 等待导入完成,显示成功提示
方式二:使用命令行
# SSH登录服务器后执行
mysql -u aigc_platform -p aigc_platform < init_database.sql
# 输入数据库密码后回车
第三步:设置管理员权限
导入完成后,需要设置管理员账号权限:
方式一:自动设置(已包含在init_database.sql中)
如果使用 init_database.sql 导入,管理员权限已自动设置,无需额外操作。
方式二:手动设置
如果需要手动设置或更改管理员,可以执行 update_admin_user.sql:
- 在 phpMyAdmin 中点击【SQL】标签
- 将
update_admin_user.sql的内容粘贴到文本框 - 点击【执行】
或者直接在SQL中执行:
UPDATE users
SET role = 'ROLE_ADMIN',
updated_at = CURRENT_TIMESTAMP
WHERE email = '984523799@qq.com';
第四步:验证数据库
在 phpMyAdmin 或命令行中执行以下查询,验证表结构是否正确:
-- 查看所有表
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
# 数据库配置
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. 定期备份
在宝塔面板设置自动备份:
- 进入【计划任务】
- 添加【备份数据库】任务
- 选择
aigc_platform数据库 - 设置备份周期(建议每天备份)
- 设置保留份数(建议保留7-30份)
⚙️ 数据库性能优化
1. 连接池配置(已包含在application配置中)
# 连接池配置(支持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】->【设置】->【配置修改】中调整:
# 根据服务器内存调整(示例为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. 管理员权限未生效
原因:用户还未注册
解决方案:
- 先在前端使用
984523799@qq.com注册账号 - 注册完成后,数据库会自动将该用户设置为管理员(因为
data.sql中有自动更新脚本) - 或者注册后手动执行
update_admin_user.sql
📊 数据库监控
在宝塔面板可以监控数据库状态:
- 进入【数据库】菜单
- 点击数据库名称右侧的【监控】
- 查看:
- 查询次数
- 慢查询
- 连接数
- 缓存命中率
📞 技术支持
如遇到问题,请检查:
- 宝塔面板【日志】中的 MySQL 错误日志
- 应用日志中的数据库连接错误
- 确保 MySQL 服务正在运行
部署完成标志:
- ✅ 数据库创建成功
- ✅ 表结构导入成功(13个表)
- ✅ 管理员权限设置完成
- ✅ 应用能够成功连接数据库
祝部署顺利!🎉