目录
- 一、问题描述
- 二、原因分析
- 三、解决方案
- ✅ 推荐:安装 `pymysql`(纯 Python,跨平台,安装简单)
- ✅ 可选:安装 `mysqlclient`(更快,但需要本地编译环境)
- ✅ 总结
- 四、mysql-connector-python为什么不行
一、问题描述
在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 pymysqlpymysql.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 MySQLDatabasedb = 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_o8888888o88" . "88(| -_- |)O\ = /O____/`---'\____.' \\| |// `./ \\||| : |||// \/ _||||| -:- |||||- \| | \\\ - /// | || \_| ''\---/'' | |\ .-\__ `-` ___/-. /___`. .' /--.--\ `. . __."" '< `.___\_<|>_/___.' >'"".| | : `- \`.;`\ _ /`;.`/ - ` : | |\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^佛祖保佑 永无BUG
*/