不管你是做数据分析,还是网络爬虫、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 import declarative_base
Base = declarative_base()
():
__tablename__ =
= Column(Integer, primary_key=)
name = Column(String)
engine = create_engine()

