外观
常见问题
本文收集了使用过程中的常见问题及解决方案。
安装部署
Q: 端口被占用怎么办?
解决方案:
- 检查哪个进程占用了端口:
bash
# Linux/Mac
lsof -i :80
lsof -i :7501
# Windows
netstat -ano | findstr :80修改配置文件
server/configs/config.yaml中的端口配置重新启动服务:
bash
sudo systemctl restart mikaQ: 数据库连接失败?
解决方案:
- 检查 MySQL 服务是否正常运行:
bash
systemctl status mysql- 确认数据库配置正确,检查
server/configs/config.yaml - 检查数据库用户权限
- 查看 MySQL 日志:
bash
tail -f /var/log/mysql/error.logQ: 如何重新进入安装引导?
解决方案:
删除安装配置文件,然后重启服务:
bash
rm server/configs/install.json
sudo systemctl restart mika再次访问系统即可进入安装引导页。
Q: 宝塔面板部署后 502 错误?
解决方案:
- 检查后端服务是否运行:
bash
systemctl status mika- 检查端口是否监听:
bash
netstat -tlnp | grep 7501- 查看后端日志:
bash
journalctl -u mika -n 100- 检查 Nginx 代理配置是否正确
视频转码
Q: 视频转码失败?
排查步骤:
- 检查 FFmpeg 是否正确安装:
bash
ffmpeg -version- 检查磁盘空间:
bash
df -h- 查看转码任务日志
- 检查视频文件是否损坏
常见原因:
- FFmpeg 未安装或版本过低
- 磁盘空间不足
- 视频文件损坏
- 不支持的视频格式
Q: 转码速度很慢?
优化建议:
启用硬件加速:
- NVIDIA GPU: 使用
h264_nvenc - Intel CPU: 使用
h264_qsv
- NVIDIA GPU: 使用
调整转码参数:
yaml
transcode:
preset: fast # 从 medium 改为 fast- 降低并发数:
yaml
queue:
max_concurrent: 1 # 减少并发- 升级服务器配置:推荐 4 核 8GB 以上
Q: 转码后画质差?
解决方案:
- 提高输出码率:
yaml
transcode:
video_bitrate: 5000 # 提高码率- 降低 CRF 值(值越小质量越高):
yaml
transcode:
crf: 20 # 默认 23,改为 20- 使用更高的分辨率输出
Q: 播放视频卡顿?
排查步骤:
- 检查服务器带宽
- 检查视频码率是否过高
- 启用 CDN 加速
- 检查播放器配置
优化建议:
- 降低视频码率
- 启用多码率自适应
- 使用 CDN 分发
- 优化分片时长
存储问题
Q: 上传大文件失败?
解决方案:
- 修改 Nginx 配置:
nginx
client_max_body_size 5G;
client_body_timeout 3600s;
proxy_read_timeout 3600s;- 修改系统上传限制:
yaml
upload:
max_size: 5368709120 # 5GB- 使用分片上传功能
Q: 存储空间不足?
解决方案:
- 清理临时文件:
bash
# 手动清理
rm -rf app/public/temp/*
# 或使用系统清理功能- 删除不需要的视频
- 迁移到云存储(OSS/COS)
- 扩展磁盘空间
Q: 云存储上传失败?
排查步骤:
- 检查 AccessKey 配置是否正确
- 检查 Bucket 权限设置
- 检查网络连接
- 查看错误日志
常见原因:
- AccessKey 无权限
- Bucket 不存在或区域错误
- 网络连接问题
- 跨域配置问题
Q: 视频无法播放,提示跨域错误?
解决方案:
- 配置 Nginx 跨域头:
nginx
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,HEAD;- 云存储配置 CORS:
json
{
"AllowedOrigin": ["*"],
"AllowedMethod": ["GET", "HEAD"],
"AllowedHeader": ["*"]
}用户相关
Q: 忘记管理员密码?
解决方案:
方法一:使用命令行工具
bash
./server reset-password --username admin --password newpassword方法二:直接修改数据库
sql
-- 使用 bcrypt 加密的密码哈希
UPDATE users SET password = '新密码哈希' WHERE username = 'admin';Q: 用户无法登录?
排查步骤:
- 检查账号状态是否被禁用
- 检查密码是否正确
- 检查是否超过登录尝试限制
- 清除浏览器缓存和 Cookie
- 查看登录日志
Q: Token 频繁失效?
解决方案:
- 增加 Token 有效期:
yaml
jwt:
expire: 604800 # 7 天- 启用 Token 自动刷新
- 检查服务器时间是否正确
性能问题
Q: 系统响应慢?
优化建议:
- 启用缓存:
yaml
cache:
video:
enabled: true
ttl: 3600优化数据库:
- 添加索引
- 优化慢查询
- 增加连接池
使用 CDN 加速静态资源
升级服务器配置
Q: 数据库查询慢?
解决方案:
- 开启慢查询日志:
yaml
database:
slow_query:
enabled: true
threshold: 200 # 毫秒- 分析慢查询并添加索引
- 优化 SQL 语句
- 考虑读写分离
Q: 内存占用过高?
排查步骤:
- 检查转码并发数是否过多
- 检查是否有内存泄漏
- 限制缓存大小
- 增加服务器内存
其他问题
Q: 如何备份数据?
备份命令:
bash
# 备份数据库
mysqldump -u root -p mika_transcode > backup_$(date +%Y%m%d).sql
# 备份视频文件
tar -czvf videos_backup.tar.gz app/public/videos/
# 备份配置文件
cp -r server/configs configs_backup/Q: 如何升级系统?
升级步骤:
- 备份数据和配置文件
- 从发布页下载最新版本压缩包
- 解压新版本覆盖旧文件
- 重启服务:
bash
# 停止服务
ps aux | grep mika-server
kill xxxxx
# 启动新版本
nohup ./bin/mika-server > server.log 2>&1 &- 检查数据库迁移(如有)
Q: 如何查看系统日志?
日志位置:
| 日志 | 位置 |
|---|---|
| 应用日志 | server/logs/app.log |
| Nginx 日志 | /var/log/nginx/ |
| MySQL 日志 | /var/log/mysql/ |
查看命令:
bash
# 应用日志
tail -f server/logs/app.log
# 服务日志
journalctl -u mika -fQ: 如何联系技术支持?
支持渠道:
- 提交 GitHub Issue
- 发送邮件至 support@example.com
- 加入交流群
提交问题时请提供:
- 系统版本
- 部署方式
- 错误日志
- 复现步骤