目录
一、问题描述
在python项目中连接数据库,刚开始用的mysql-connector-python,切换到peewee后连接错误
peewee.ImproperlyConfigured: MySQL driver not installed!
二、原因分析
peewee不附带安装数据库驱动,需要手动安装,如果连接其他数据库则需要安装其他数据库对应的驱动
三、解决方案
✅ 推荐:安装 pymysql(纯 Python,跨平台,安装简单)
pip install pymysql
uv add pymysql
然后在你的项目入口处(比如 main.py 或 __init__.py)加上:
import pymysql
pymysql.install_as_MySQLdb()
安装完成后,运行以下代码测试:
普通版
from peewee import MySQLDatabase
import pymysql
pymysql.install_as_MySQLdb() # 将 PyMySQL 作为 MySQLdb 使用
db = MySQLDatabase('database_name', user='username', password='password', host='localhost', port=3306)
连接池版
from playhouse.pool import PooledMySQLDatabase
import pymysql
pymysql.install_as_MySQLdb() # 将 PyMySQL 作为 MySQLdb 使用
db = PooledMySQLDatabase('test', user='root', password='root', host='127.0.0.1', port=3306)
print(db.connect())
显示True则说明连接成功

✅ 可选:安装 mysqlclient(更快,但需要本地编译环境)
# Linux / macOS
pip install mysqlclient
# Windows 上推荐使用预编译的 wheel:
pip install mysqlclient‑1.4.6‑cp39‑cp39‑win_amd64.whl
注意:
mysqlclient依赖本地 MySQL 开发库,安装可能失败,尤其在 Windows 上。
安装完成后,运行以下代码测试:
Peewee 会自动使用 mysqlclient 作为 MySQL 驱动。
from peewee import MySQLDatabase
db = MySQLDatabase('database_name', user='username', password='password', host='localhost', port=3306)
✅ 总结
| 驱动 | 安装方式 | 是否推荐 |
|---|---|---|
pymysql | pip install pymysql + install_as_MySQLdb() | ✅ 推荐 |
mysqlclient | pip install mysqlclient | ⚠️ 可选(需编译) |
你只需安装一个驱动即可解决问题。建议优先使用 pymysql。
四、mysql-connector-python为什么不行
❌ 为什么 mysql-connector-python 不行?
mysql-connector-python 并不是 Peewee 支持的 MySQL 驱动。Peewee 只支持以下两种 MySQL 驱动:
- ✅ PyMySQL(纯 Python,跨平台,推荐)
- ✅ mysqlclient(基于 C 的 libmysqlclient,性能好,但难装)
而 mysql-connector-python 是 Oracle 官方提供的驱动,但 Peewee 没有适配它,所以即使你安装了,也会报错。
喜欢的点个关注吧><!祝你永无bug!
/*
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 永无BUG
*/


577

被折叠的 条评论
为什么被折叠?



