Kamixitong/DEPLOYMENT.md
2025-11-11 21:39:12 +08:00

11 KiB
Raw Blame History

KaMiXiTong 软件授权管理系统 - MySQL 部署指南

📖 本指南专为小白用户设计,一步一步教你如何部署 KaMiXiTong 系统

📋 目录

  1. 系统要求
  2. MySQL 数据库安装
  3. 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. 验证安装

    # 打开命令提示符,输入:
    mysql --version
    # 应该显示版本信息
    

方法二:使用 XAMPP简单快捷

  1. 下载 XAMPP

    访问官网https://www.apachefriends.org/
    下载适合你系统的 XAMPP 版本
    
  2. 安装和启动

    • 安装 XAMPP一路下一步即可
    • 打开 XAMPP 控制面板
    • 启动 MySQL 和 Apache 服务

Ubuntu 系统安装 MySQL

# 更新软件包列表
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

# 下载 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 版本

# 检查 Python 版本(需要 3.7+
python --version
# 或者
python3 --version

# 如果没有安装 Python请访问 https://www.python.org/downloads/

安装项目依赖

方法一:使用自动安装脚本(推荐新手)

# 进入项目目录
cd /path/to/KaMiXiTong

# 运行自动安装脚本
python install_deps.py

方法二:手动安装

# 进入项目目录
cd /path/to/KaMiXiTong

# 安装依赖包
pip install -r requirements.txt

如果安装过程中遇到错误,试试这个:

# 升级 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. 编辑数据库配置

    # 用记事本或编辑器打开 .env 文件
    # 找到这一行:
    DATABASE_URL=mysql+pymysql://root:taiyi1224@localhost/kamaxitong
    
    # 修改为你的 MySQL 信息:
    # 格式mysql+pymysql://用户名:密码@主机地址/数据库名
    
  3. 配置说明

    • rootMySQL 用户名
    • taiyi1224MySQL 密码(替换成你自己的密码)
    • localhost:数据库地址(本地部署就用 localhost
    • kamaxitong:数据库名称

第二步:创建数据库

方法一:使用命令行(推荐)

# 登录 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

第三步:测试数据库连接

# 在项目目录下运行测试
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}')
"

第四步:初始化数据库

# 运行数据库初始化脚本
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

🌟 启动服务

开发模式启动(测试用)

# 方法一:使用 run.py
python run.py

# 方法二:使用 start.py
python start.py

# 方法三:直接启动 Flask
flask run

启动成功后,访问:

生产模式启动(正式部署)

# 使用 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 服务是否启动

    # Windows
    net start mysql
    
    # Linux
    sudo systemctl status mysql
    sudo systemctl start mysql
    
  2. 检查用户名和密码

    # 测试连接
    mysql -u root -p
    
  3. 检查防火墙设置

    • 确保 3306 端口没有被防火墙阻止

问题 2权限不足

错误信息:

Access denied for user 'root'@'localhost'

解决方案:

-- 登录 MySQL 后执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;

问题 3端口被占用

错误信息:

Address already in use

解决方案:

# 查看端口占用
netstat -tulpn | grep :5000

# 或者修改端口
# 编辑 .env 文件,修改 PORT=5000 为其他端口

问题 4依赖包安装失败

解决方案:

# 清理 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'

解决方案:

# 方法一:使用自动安装脚本
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中文字符乱码

解决方案:

-- 确保数据库使用正确的字符集
ALTER DATABASE kamaxitong CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

📊 维护与管理

备份数据库

# 完整备份
mysqldump -u root -p kamaxitong > backup_$(date +%Y%m%d_%H%M%S).sql

# 恢复数据库
mysql -u root -p kamaxitong < backup_file.sql

更新系统

# 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

查看日志

# 查看应用日志
tail -f logs/kamaxitong.log

# 查看 MySQL 错误日志
# Windows: C:\ProgramData\MySQL\MySQL Server 8.0\Data\
# Linux: /var/log/mysql/error.log

性能优化

  1. 数据库优化

    -- 创建索引
    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. 开始配置你的产品和许可证

温馨提示:

  • 生产环境请务必修改默认密码
  • 定期备份数据库
  • 保持系统和依赖包的更新

祝你使用愉快! 🎊