跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 连接 MySQL 的 5 种主流方案

Python 连接 MySQL 主要有五种常用方案。原生驱动如 mysqlclient 性能高但依赖系统库;纯 Python 实现的 PyMySQL 安装便捷且跨平台;Oracle 官方提供的 mysql-connector-python 稳定性好;ORM 框架 SQLAlchemy 适合复杂业务建模;轻量级 ORM Peewee 则便于快速开发。开发者应根据项目需求、环境限制及性能要求选择合适的驱动或框架,避免使用已停止维护的旧版 MySQLdb。

游戏玩家发布于 2019/3/9更新于 2026/10/2488 浏览
Python 连接 MySQL 的 5 种主流方案

不管你是做数据分析,还是网络爬虫、Web 开发亦或是机器学习,都离不开和数据库打交道。MySQL 作为最流行的关系型数据库之一,在 Python 生态中有着丰富的连接方案。这篇文章梳理了 Python 操作 MySQL 的 5 种主流方式,你可以根据实际开发场景合理选择。

1. mysqlclient(原 MySQLdb 的继任者)

MySQLdb(也叫 MySQL-python)曾是 Python 连接 MySQL 最流行的驱动,许多老框架都基于此开发。遗憾的是它仅支持 Python 2.x,且由于基于 C 开发,在 Windows 上安装极其不友好,常因缺少前置依赖而失败。目前基本不再推荐使用,取而代之的是它的衍生版本 mysqlclient。

安装前需确保系统已安装 MySQL 开发包:

# Ubuntu/Debian
sudo apt-get install python3-dev libmysqlclient-dev

# CentOS/RHEL
sudo yum install python3-devel

mysqlclient 性能优异,兼容性好,是生产环境的首选,但依然需要编译环境。

2. PyMySQL(纯 Python 实现)

如果你不想处理复杂的编译依赖,PyMySQL 是个不错的选择。它是纯 Python 编写的 MySQL 客户端,完全兼容 MySQLdb 的 API,可以直接替换使用。

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='test_db'
)

优势在于跨平台方便,pip 一键安装即可,无需系统级依赖。缺点是性能略低于 C 扩展,但在大多数 Web 应用中影响可忽略不计。

3. mysql-connector-python(官方驱动)

这是 Oracle 官方推出的纯 Python 驱动,专为 MySQL 设计。它不仅支持标准协议,还包含一些高级功能如 SSL 加密和连接池。

import mysql.connector

config = {
    'user': 'root',
    'password': 'password',
    'host': 'localhost',
    'database': 'test_db'
}
connection = mysql.connector.connect(**config)

适合对官方支持有要求的场景,文档完善,社区活跃。

4. SQLAlchemy(ORM 框架)

当业务逻辑复杂时,直接操作 SQL 可能显得繁琐。SQLAlchemy 是一个强大的 ORM 工具,允许你用面向对象的方式操作数据库,同时保留底层 SQL 的控制权。

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative  declarative_base

Base = declarative_base()

 ():
    __tablename__ = 
     = Column(Integer, primary_key=)
    name = Column(String)

engine = create_engine()
import
class
User
Base
'users'
id
True
'mysql+pymysql://user:pass@localhost/db'

学习曲线稍陡,但能极大提升开发效率,适合中大型项目。

5. Peewee(轻量级 ORM)

如果你需要一个比 SQLAlchemy 更轻量的 ORM,Peewee 值得考虑。它语法简洁,上手快,非常适合小型项目或脚本任务。

from peewee import SqliteDatabase, Model, CharField

db = SqliteDatabase('app.db')

class User(Model):
    name = CharField()

    class Meta:
        database = db

虽然主要针对 SQLite,但也支持 MySQL,配置简单,依赖极少。

总结建议

  • 追求性能与稳定:选 mysqlclient。
  • 部署环境受限:选 PyMySQL 或 mysql-connector-python。
  • 复杂业务建模:选 SQLAlchemy。
  • 快速原型开发:选 Peewee。

避免使用已停止维护的 MySQLdb,根据项目实际需求权衡利弊即可。

目录

  1. 1. mysqlclient(原 MySQLdb 的继任者)
  2. Ubuntu/Debian
  3. CentOS/RHEL
  4. 2. PyMySQL(纯 Python 实现)
  5. 3. mysql-connector-python(官方驱动)
  6. 4. SQLAlchemy(ORM 框架)
  7. 5. Peewee(轻量级 ORM)
  8. 总结建议

更多推荐文章

查看全部
  • 数据结构:相交链表、随机链表复制及链表回文问题解析
  • 圣女司幼幽 - 造相 Z-Turbo 镜像评测:对比 Stable Diffusion 本地部署优势
  • OpenClaw 多飞书机器人配置与绑定指南
  • Git 本地身份配置:用户名与邮箱设置详解
  • OpenClaw 多智能体路由实战:飞书多机器人配置指南
  • Vivado License 获取与配置指南
  • 基于 OpenClaw 与飞书 Agent 的 AI 自主模拟炒股系统实战
  • Obsidian 与 Gitee 同步笔记教程
  • 本地语音识别实战:Whisper 隐私保护与多场景应用
  • 前端问卷系统评分题保存草稿报错解决方案
  • Linux 搭建 Web 服务器指南:Nginx 与 Apache 实战
  • 多模态 AI 如何重塑人机交互的未来
  • uv 虚拟环境管理:venv 创建、激活与版本指定
  • Python 基础语法总结
  • 基于 LangChain 的 LLM Agent 快速入门指南
  • voidImageViewer:轻量级图像查看器,支持 GIF/WEBP 动画播放
  • Python 数据分析核心第三方扩展库详解
  • PyCharm 提交项目代码到 GitHub 的方法
  • SQLBot:基于大模型与 RAG 的智能问数系统架构
  • WebCode 与 Clawdbot:AI 助手框架深度对比

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online