You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Flask应用工厂与Peewee FlaskDB连接远程MySQL数据库

问题原因

报错peewee.ImproperlyConfigured: MySQL driver not installed!是因为Python运行环境缺少MySQL连接驱动,MySQL Workbench等客户端工具自带独立驱动,和Python环境不互通,所以会出现工具能正常连接但代码报错的情况。

第一步:安装MySQL驱动

选择以下任意一个驱动安装即可:

  • 优先选择性能更高的mysqlclient:
pip install mysqlclient

如果安装时出现编译报错(常见于Windows系统、无编译环境的Linux服务器),可改用纯Python实现的pymysql:

pip install pymysql

如果安装pymysql后仍然提示驱动不存在,在你的__init__.py文件最顶部添加以下代码即可:

import pymysql
pymysql.install_as_MySQLdb()

第二步:验证基础连接

安装完成后重启Flask应用,即可正常连接远程MySQL,原配置无需额外修改。如果你的MySQL服务使用了非3306默认端口,需要在DATABASE配置中补充端口参数:

DATABASE = {
    'name': 'mydb',
    'engine': 'peewee.MySQLDatabase',
    'user': 'root',
    'passwd': 'root',
    'host': 'xxx.xxx.xxx.xxx',
    'port': 3307 # 替换为你的实际端口
}

SSL加密连接配置

如果需要启用SSL加密连接,直接在DATABASE配置中添加ssl参数即可,根据你的验证需求选择对应配置:

场景1:强制SSL连接,不验证证书(适配自签证书、测试环境)

DATABASE = {
    'name': 'mydb',
    'engine': 'peewee.MySQLDatabase',
    'user': 'root',
    'passwd': 'root',
    'host': 'xxx.xxx.xxx.xxx',
    'ssl': {'ssl_mode': 'REQUIRED'}
}

场景2:验证CA证书(生产环境推荐)

把服务端提供的CA证书、客户端证书密钥放到项目可访问的目录下,配置如下:

DATABASE = {
    'name': 'mydb',
    'engine': 'peewee.MySQLDatabase',
    'user': 'root',
    'passwd': 'root',
    'host': 'xxx.xxx.xxx.xxx',
    'ssl': {
        'ssl_mode': 'VERIFY_CA',
        'ca': '/path/to/ca.pem',
        'cert': '/path/to/client-cert.pem',
        'key': '/path/to/client-key.pem'
    }
}

如果需要同时验证MySQL主机名,把ssl_mode改为VERIFY_IDENTITY即可。

内容的提问来源于stack exchange,提问作者SimonB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:36:06