528 lines
11 KiB
Markdown
528 lines
11 KiB
Markdown
# KaMiXiTong 软件授权管理系统 - MySQL 部署指南
|
||
|
||
📖 **本指南专为小白用户设计,一步一步教你如何部署 KaMiXiTong 系统**
|
||
|
||
## 📋 目录
|
||
|
||
1. [系统要求](#系统要求)
|
||
2. [MySQL 数据库安装](#mysql-数据库安装)
|
||
3. [Python 环境配置](#python-环境配置)
|
||
4. [项目部署](#项目部署)
|
||
5. [启动服务](#启动服务)
|
||
6. [常见问题解决](#常见问题解决)
|
||
7. [维护与管理](#维护与管理)
|
||
|
||
---
|
||
|
||
## 🔧 系统要求
|
||
|
||
### 操作系统支持
|
||
- ✅ Windows 10/11
|
||
- ✅ Windows Server 2016/2019/2022
|
||
- ✅ Ubuntu 18.04/20.04/22.04
|
||
- ✅ CentOS 7/8
|
||
- ✅ macOS 10.15+
|
||
|
||
### 硬件要求
|
||
- **内存**: 最少 2GB,推荐 4GB+
|
||
- **硬盘**: 最少 5GB 可用空间
|
||
- **网络**: 能够连接互联网(下载依赖包)
|
||
|
||
---
|
||
|
||
## 🗄️ MySQL 数据库安装
|
||
|
||
### Windows 系统安装 MySQL
|
||
|
||
#### 方法一:使用官方安装包(推荐新手)
|
||
|
||
1. **下载 MySQL**
|
||
```
|
||
访问官网:https://dev.mysql.com/downloads/mysql/
|
||
选择:MySQL Community Server
|
||
下载:Windows (x86, 64-bit), MSI Installer
|
||
```
|
||
|
||
2. **安装步骤**
|
||
- 双击下载的 `.msi` 文件
|
||
- 选择 "Developer Default" 开发者默认配置
|
||
- 点击 "Execute" 执行安装
|
||
- 配置 root 密码(请记住这个密码!)
|
||
- 启动 MySQL 服务
|
||
|
||
3. **验证安装**
|
||
```cmd
|
||
# 打开命令提示符,输入:
|
||
mysql --version
|
||
# 应该显示版本信息
|
||
```
|
||
|
||
#### 方法二:使用 XAMPP(简单快捷)
|
||
|
||
1. **下载 XAMPP**
|
||
```
|
||
访问官网:https://www.apachefriends.org/
|
||
下载适合你系统的 XAMPP 版本
|
||
```
|
||
|
||
2. **安装和启动**
|
||
- 安装 XAMPP(一路下一步即可)
|
||
- 打开 XAMPP 控制面板
|
||
- 启动 MySQL 和 Apache 服务
|
||
|
||
### Ubuntu 系统安装 MySQL
|
||
|
||
```bash
|
||
# 更新软件包列表
|
||
sudo apt update
|
||
|
||
# 安装 MySQL 服务器
|
||
sudo apt install mysql-server -y
|
||
|
||
# 安全配置
|
||
sudo mysql_secure_installation
|
||
|
||
# 启动 MySQL 服务
|
||
sudo systemctl start mysql
|
||
sudo systemctl enable mysql
|
||
```
|
||
|
||
### CentOS 系统安装 MySQL
|
||
|
||
```bash
|
||
# 下载 MySQL 仓库
|
||
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
|
||
|
||
# 安装 MySQL
|
||
sudo yum install mysql-community-server -y
|
||
|
||
# 启动 MySQL 服务
|
||
sudo systemctl start mysqld
|
||
sudo systemctl enable mysqld
|
||
|
||
# 查看临时密码
|
||
sudo grep 'temporary password' /var/log/mysqld.log
|
||
```
|
||
|
||
---
|
||
|
||
## 🐍 Python 环境配置
|
||
|
||
### 检查 Python 版本
|
||
|
||
```bash
|
||
# 检查 Python 版本(需要 3.7+)
|
||
python --version
|
||
# 或者
|
||
python3 --version
|
||
|
||
# 如果没有安装 Python,请访问 https://www.python.org/downloads/
|
||
```
|
||
|
||
### 安装项目依赖
|
||
|
||
#### 方法一:使用自动安装脚本(推荐新手)
|
||
|
||
```bash
|
||
# 进入项目目录
|
||
cd /path/to/KaMiXiTong
|
||
|
||
# 运行自动安装脚本
|
||
python install_deps.py
|
||
```
|
||
|
||
#### 方法二:手动安装
|
||
|
||
```bash
|
||
# 进入项目目录
|
||
cd /path/to/KaMiXiTong
|
||
|
||
# 安装依赖包
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
**如果安装过程中遇到错误,试试这个:**
|
||
```bash
|
||
# 升级 pip
|
||
pip install --upgrade pip
|
||
|
||
# 重新安装依赖
|
||
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
|
||
|
||
# 如果还是有问题,尝试单独安装关键依赖
|
||
pip install cryptography==41.0.4
|
||
pip install Flask==2.3.3
|
||
pip install Flask-SQLAlchemy==3.0.5
|
||
pip install PyMySQL==1.1.0
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 项目部署
|
||
|
||
### 第一步:配置数据库连接
|
||
|
||
1. **找到配置文件**
|
||
```
|
||
在项目根目录找到 .env 文件
|
||
如果没有,复制 .env.example 为 .env
|
||
```
|
||
|
||
2. **编辑数据库配置**
|
||
```bash
|
||
# 用记事本或编辑器打开 .env 文件
|
||
# 找到这一行:
|
||
DATABASE_URL=mysql+pymysql://root:taiyi1224@localhost/kamaxitong
|
||
|
||
# 修改为你的 MySQL 信息:
|
||
# 格式:mysql+pymysql://用户名:密码@主机地址/数据库名
|
||
```
|
||
|
||
3. **配置说明**
|
||
- `root`:MySQL 用户名
|
||
- `taiyi1224`:MySQL 密码(替换成你自己的密码)
|
||
- `localhost`:数据库地址(本地部署就用 localhost)
|
||
- `kamaxitong`:数据库名称
|
||
|
||
### 第二步:创建数据库
|
||
|
||
#### 方法一:使用命令行(推荐)
|
||
|
||
```bash
|
||
# 登录 MySQL
|
||
mysql -u root -p
|
||
|
||
# 输入密码后,创建数据库
|
||
CREATE DATABASE kamaxitong CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
# 查看数据库是否创建成功
|
||
SHOW DATABASES;
|
||
|
||
# 退出 MySQL
|
||
EXIT;
|
||
```
|
||
|
||
#### 方法二:使用图形界面工具
|
||
|
||
**phpMyAdmin 用户:**
|
||
1. 打开 phpMyAdmin 网页界面
|
||
2. 点击 "新建数据库"
|
||
3. 数据库名称:`kamaxitong`
|
||
4. 排序规则:`utf8mb4_unicode_ci`
|
||
5. 点击创建
|
||
|
||
**Navicat 用户:**
|
||
1. 连接到 MySQL 服务器
|
||
2. 右键点击连接,选择 "新建数据库"
|
||
3. 输入数据库名:`kamaxitong`
|
||
4. 字符集选择:`utf8mb4`
|
||
5. 排序规则选择:`utf8mb4_unicode_ci`
|
||
|
||
### 第三步:测试数据库连接
|
||
|
||
```bash
|
||
# 在项目目录下运行测试
|
||
python -c "
|
||
from app import create_app, db
|
||
app = create_app()
|
||
with app.app_context():
|
||
try:
|
||
db.engine.execute('SELECT 1')
|
||
print('✅ 数据库连接成功!')
|
||
except Exception as e:
|
||
print(f'❌ 数据库连接失败:{e}')
|
||
"
|
||
```
|
||
|
||
### 第四步:初始化数据库
|
||
|
||
```bash
|
||
# 运行数据库初始化脚本
|
||
python init_db.py
|
||
```
|
||
|
||
**如果成功,你会看到类似这样的输出:**
|
||
```
|
||
==================================================
|
||
KaMiXiTong 数据库初始化开始...
|
||
==================================================
|
||
1. 清理现有数据库表...
|
||
✓ 已删除所有现有表
|
||
|
||
2. 创建数据库表结构...
|
||
✓ 已创建所有数据表
|
||
|
||
3. 插入初始数据...
|
||
创建默认管理员账号...
|
||
✓ 已创建管理员账号 (admin/admin123, test_admin/test123)
|
||
创建示例产品...
|
||
✓ 已创建3个示例产品
|
||
创建版本信息...
|
||
✓ 已创建6个版本信息
|
||
创建示例许可证...
|
||
✓ 已创建6个示例许可证
|
||
创建示例设备...
|
||
✓ 已创建6个示例设备
|
||
创建示例工单...
|
||
✓ 已创建5个示例工单
|
||
✓ 所有初始数据插入完成
|
||
|
||
4. 数据库初始化完成!
|
||
|
||
==================================================
|
||
数据库初始化信息统计
|
||
==================================================
|
||
管理员账号 : 2 条记录
|
||
产品 : 3 条记录
|
||
版本 : 6 条记录
|
||
许可证 : 6 条记录
|
||
设备 : 6 条记录
|
||
工单 : 5 条记录
|
||
|
||
==================================================
|
||
默认登录信息
|
||
==================================================
|
||
超级管理员: admin / admin123
|
||
普通管理员: test_admin / test123
|
||
```
|
||
|
||
---
|
||
|
||
## 🌟 启动服务
|
||
|
||
### 开发模式启动(测试用)
|
||
|
||
```bash
|
||
# 方法一:使用 run.py
|
||
python run.py
|
||
|
||
# 方法二:使用 start.py
|
||
python start.py
|
||
|
||
# 方法三:直接启动 Flask
|
||
flask run
|
||
```
|
||
|
||
**启动成功后,访问:**
|
||
- 网页界面:http://localhost:5000
|
||
- 管理后台:http://localhost:5000
|
||
|
||
### 生产模式启动(正式部署)
|
||
|
||
```bash
|
||
# 使用 Gunicorn 启动(推荐)
|
||
gunicorn -w 4 -b 0.0.0.0:5000 run:app
|
||
|
||
# 或者使用 start.py(如果配置了生产模式)
|
||
python start.py
|
||
```
|
||
|
||
**参数说明:**
|
||
- `-w 4`:启动 4 个工作进程
|
||
- `-b 0.0.0.0:5000`:绑定到所有网络接口的 5000 端口
|
||
|
||
---
|
||
|
||
## 🔧 常见问题解决
|
||
|
||
### 问题 1:数据库连接失败
|
||
|
||
**错误信息:**
|
||
```
|
||
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server")
|
||
```
|
||
|
||
**解决方案:**
|
||
1. **检查 MySQL 服务是否启动**
|
||
```bash
|
||
# Windows
|
||
net start mysql
|
||
|
||
# Linux
|
||
sudo systemctl status mysql
|
||
sudo systemctl start mysql
|
||
```
|
||
|
||
2. **检查用户名和密码**
|
||
```bash
|
||
# 测试连接
|
||
mysql -u root -p
|
||
```
|
||
|
||
3. **检查防火墙设置**
|
||
- 确保 3306 端口没有被防火墙阻止
|
||
|
||
### 问题 2:权限不足
|
||
|
||
**错误信息:**
|
||
```
|
||
Access denied for user 'root'@'localhost'
|
||
```
|
||
|
||
**解决方案:**
|
||
```sql
|
||
-- 登录 MySQL 后执行
|
||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
|
||
FLUSH PRIVILEGES;
|
||
```
|
||
|
||
### 问题 3:端口被占用
|
||
|
||
**错误信息:**
|
||
```
|
||
Address already in use
|
||
```
|
||
|
||
**解决方案:**
|
||
```bash
|
||
# 查看端口占用
|
||
netstat -tulpn | grep :5000
|
||
|
||
# 或者修改端口
|
||
# 编辑 .env 文件,修改 PORT=5000 为其他端口
|
||
```
|
||
|
||
### 问题 4:依赖包安装失败
|
||
|
||
**解决方案:**
|
||
```bash
|
||
# 清理 pip 缓存
|
||
pip cache purge
|
||
|
||
# 使用国内镜像源
|
||
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
|
||
|
||
# 如果还有问题,尝试逐个安装
|
||
pip install Flask==2.3.3
|
||
pip install Flask-SQLAlchemy==3.0.5
|
||
# ... 其他包
|
||
```
|
||
|
||
### 问题 5:依赖包安装失败
|
||
|
||
**错误信息:**
|
||
```
|
||
ModuleNotFoundError: No module named 'Crypto'
|
||
ImportError: cannot import name 'app' from 'app'
|
||
```
|
||
|
||
**解决方案:**
|
||
```bash
|
||
# 方法一:使用自动安装脚本
|
||
python install_deps.py
|
||
|
||
# 方法二:手动安装关键依赖
|
||
pip install cryptography==41.0.4
|
||
|
||
# 方法三:清理并重新安装
|
||
pip cache purge
|
||
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
|
||
|
||
# 方法四:逐个安装关键包
|
||
pip install cryptography==41.0.4
|
||
pip install Flask==2.3.3
|
||
pip install Flask-SQLAlchemy==3.0.5
|
||
pip install Flask-Login==0.6.3
|
||
pip install PyMySQL==1.1.0
|
||
pip install python-dotenv==1.0.0
|
||
```
|
||
|
||
### 问题 6:中文字符乱码
|
||
|
||
**解决方案:**
|
||
```sql
|
||
-- 确保数据库使用正确的字符集
|
||
ALTER DATABASE kamaxitong CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 维护与管理
|
||
|
||
### 备份数据库
|
||
|
||
```bash
|
||
# 完整备份
|
||
mysqldump -u root -p kamaxitong > backup_$(date +%Y%m%d_%H%M%S).sql
|
||
|
||
# 恢复数据库
|
||
mysql -u root -p kamaxitong < backup_file.sql
|
||
```
|
||
|
||
### 更新系统
|
||
|
||
```bash
|
||
# 1. 备份数据库
|
||
mysqldump -u root -p kamaxitong > backup_before_update.sql
|
||
|
||
# 2. 拉取最新代码(如果使用 Git)
|
||
git pull origin main
|
||
|
||
# 3. 更新依赖包
|
||
pip install -r requirements.txt --upgrade
|
||
|
||
# 4. 重新初始化数据库(谨慎操作)
|
||
python init_db.py
|
||
```
|
||
|
||
### 查看日志
|
||
|
||
```bash
|
||
# 查看应用日志
|
||
tail -f logs/kamaxitong.log
|
||
|
||
# 查看 MySQL 错误日志
|
||
# Windows: C:\ProgramData\MySQL\MySQL Server 8.0\Data\
|
||
# Linux: /var/log/mysql/error.log
|
||
```
|
||
|
||
### 性能优化
|
||
|
||
1. **数据库优化**
|
||
```sql
|
||
-- 创建索引
|
||
CREATE INDEX idx_license_key ON license(license_key);
|
||
CREATE INDEX idx_machine_code ON device(machine_code);
|
||
```
|
||
|
||
2. **应用优化**
|
||
- 修改 `.env` 文件中的配置
|
||
- 调整 `ITEMS_PER_PAGE` 控制分页大小
|
||
- 设置合适的 `LOG_LEVEL`
|
||
|
||
---
|
||
|
||
## 📞 技术支持
|
||
|
||
如果以上步骤都遇到了问题,请提供以下信息:
|
||
|
||
1. **系统信息**
|
||
- 操作系统版本
|
||
- Python 版本
|
||
- MySQL 版本
|
||
|
||
2. **错误信息**
|
||
- 完整的错误日志
|
||
- 执行的具体命令
|
||
|
||
3. **配置信息**
|
||
- `.env` 文件内容(请隐藏密码)
|
||
|
||
---
|
||
|
||
## 🎉 部署完成!
|
||
|
||
恭喜你!如果以上步骤都成功执行,你的 KaMiXiTong 系统已经成功部署了!
|
||
|
||
**下一步操作:**
|
||
1. 访问 http://localhost:5000
|
||
2. 使用默认账号登录:`admin` / `admin123`
|
||
3. **立即修改默认密码!**
|
||
4. 开始配置你的产品和许可证
|
||
|
||
**温馨提示:**
|
||
- 生产环境请务必修改默认密码
|
||
- 定期备份数据库
|
||
- 保持系统和依赖包的更新
|
||
|
||
祝你使用愉快! 🎊 |