4.8 KiB
4.8 KiB
MySQL数据库配置指南
概述
系统已经配置为使用MySQL数据库,并从.env文件读取配置。
配置步骤
1. 确保安装MySQL客户端依赖
安装PyMySQL(MySQL Python驱动):
pip install PyMySQL
# 或者
pip install pymysql
2. 配置.env文件
编辑项目根目录的.env文件:
# 数据库配置
# 格式: mysql+pymysql://用户名:密码@主机:端口/数据库名
DATABASE_URL=mysql+pymysql://root:你的密码@localhost/kamaxitong
# 示例:
DATABASE_URL=mysql+pymysql://root:taiyi1224@localhost/kamaxitong
3. 创建数据库
在MySQL中创建数据库:
-- 登录MySQL
mysql -u root -p
-- 创建数据库
CREATE DATABASE kamaxitong CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 授权(可选)
GRANT ALL PRIVILEGES ON kamaxitong.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
4. 更新.env文件中的数据库URL
.env文件中的DATABASE_URL格式:
# 标准格式
DATABASE_URL=mysql+pymysql://用户名:密码@主机:端口/数据库名
# 本地示例
DATABASE_URL=mysql+pymysql://root:taiyi1224@localhost/kamaxitong
# 远程示例
DATABASE_URL=mysql+pymysql://root:password@192.168.1.100:3306/kamaxitong
5. 初始化数据库
方式1: 使用Flask-Migrate(推荐)
# 初始化迁移(如果还没有)
flask db init
# 生成迁移文件
flask db migrate -m "Initial migration"
# 应用迁移
flask db upgrade
方式2: 使用快速修复脚本
python quick_fix.py
6. 启动应用
python run.py
数据库配置参数说明
| 参数 | 说明 | 示例 |
|---|---|---|
| 数据库类型 | mysql+pymysql | mysql+pymysql |
| 用户名 | MySQL用户名 | root |
| 密码 | MySQL密码 | taiyi1224 |
| 主机 | 数据库主机 | localhost 或 192.168.1.100 |
| 端口 | MySQL端口(可选) | 3306(默认) |
| 数据库名 | 要使用的数据库名 | kamaxitong |
完整的.env文件示例
# 环境配置
FLASK_ENV=development
FLASK_DEBUG=True
# 数据库配置 - MySQL
DATABASE_URL=mysql+pymysql://root:taiyi1224@localhost/kamaxitong
# 安全配置
SECRET_KEY=taiyi1224
AUTH_SECRET_KEY=taiyi1224
# 验证器配置
OFFLINE_CACHE_DAYS=7
MAX_FAILED_ATTEMPTS=5
LOCKOUT_MINUTES=10
MAX_UNBIND_TIMES=3
# 卡密配置
LICENSE_KEY_LENGTH=32
LICENSE_KEY_PREFIX=
# API配置
API_VERSION=v1
ITEMS_PER_PAGE=20
# 服务器配置
HOST=0.0.0.0
PORT=5000
# 文件上传配置
MAX_CONTENT_LENGTH=16777216
UPLOAD_FOLDER=static/uploads
# 日志配置
LOG_LEVEL=INFO
LOG_FILE=logs/kamaxitong.log
验证配置
1. 检查.env文件是否被加载
启动应用时查看控制台输出:
成功加载.env文件
2. 验证数据库连接
在Python中测试:
from app import create_app
from app import db
app = create_app()
with app.app_context():
print("数据库URI:", app.config['SQLALCHEMY_DATABASE_URI'])
db.create_all() # 测试连接
print("数据库连接成功!")
常见问题
Q1: ImportError: No module named 'pymysql'
解决方案:
pip install pymysql
Q2: 1049 (42000): Unknown database 'kamaxitong'
解决方案:
CREATE DATABASE kamaxitong CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Q3: 1045 (28000): Access denied for user 'root'@'localhost'
解决方案:
- 检查.env文件中的用户名和密码是否正确
- 确保MySQL用户有权限访问数据库
- 重置MySQL root密码
Q4: 2003 (HY000): Can't connect to MySQL server
解决方案:
- 确保MySQL服务已启动
- 检查主机和端口是否正确
- 检查防火墙设置
Q5: .env文件没有被加载
解决方案:
- 确保python-dotenv已安装:
pip install python-dotenv - 确保.env文件在项目根目录
- 重启应用
性能优化建议
1. 配置MySQL连接池
在config.py中已经配置:
SQLALCHEMY_ENGINE_OPTIONS = {
"future": True,
"pool_pre_ping": True,
"pool_size": 10,
"pool_recycle": 3600,
"max_overflow": 20
}
2. 启用MySQL查询缓存
在MySQL配置文件中(my.cnf):
[mysqld]
query_cache_type = 1
query_cache_size = 256M
3. 设置合适的字符集
确保数据库、表、列都使用utf8mb4字符集:
CREATE DATABASE kamaxitong
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
备份和恢复
备份数据库
mysqldump -u root -p kamaxitong > backup.sql
恢复数据库
mysql -u root -p kamaxitong < backup.sql
总结
系统已经配置为使用MySQL和.env文件:
- ✅ .env文件支持
- ✅ MySQL配置已就绪
- ✅ 从环境变量读取配置
- ✅ 支持开发/生产/测试环境
只需确保MySQL服务运行、依赖安装正确、.env文件配置正确即可!