Python中MySQLdb库的使用指南:快速连接与操作MySQL数据库
在Python中,MySQLdb(也被称为MySQL-python)是一个经典的库,用于连接和操作MySQL数据库,它基于C语言开发,性能高效且稳定,是许多开发者操作MySQL的首选工具,本文将详细介绍如何安装MySQLdb,并通过代码示例演示如何建立数据库连接、执行SQL语句以及处理查询结果。

安装MySQLdb库
由于MySQLdb依赖于MySQL的C接口,安装前需确保系统已安装MySQL开发文件,对于不同环境,安装方式如下:
-
Linux(Ubuntu/Debian):
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential pip install mysqlclient # MySQLdb的PyPI包名为mysqlclient
-
macOS:
使用Homebrew安装MySQL或通过brew install mysql-client获取客户端库,再通过pip安装mysqlclient。 -
Windows:
Windows安装稍复杂,建议直接使用预编译的.whl文件(从Unofficial Windows Binaries下载对应版本),然后通过pip install 文件名.whl安装。
注意:由于MySQLdb对Python3的兼容性在后续维护中由mysqlclient接管,因此推荐安装mysqlclient包。
连接MySQL数据库
安装完成后,通过以下代码建立与MySQL的连接:
import MySQLdb
try:
# 建立数据库连接
conn = MySQLdb.connect(
host="localhost", # 数据库服务器地址
user="your_username", # 用户名
passwd="your_password", # 密码
db="your_database", # 数据库名称
charset="utf8mb4" # 字符集,确保支持中文等特殊字符
)
print("数据库连接成功!")
except MySQLdb.Error as e:
print(f"连接失败,错误信息:{e}")
执行SQL语句
连接成功后,可通过游标(Cursor)对象执行SQL语句,包括创建表、插入数据、查询数据等操作。
-
创建表
try: with conn.cursor() as cursor: # 使用with语句自动管理游标关闭 sql = """ CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, age INT NOT NULL ) """ cursor.execute(sql) conn.commit() # 提交事务 print("表创建成功!") except MySQLdb.Error as e: print(f"操作失败:{e}") -
插入数据
try: with conn.cursor() as cursor: sql = "INSERT INTO users (name, age) VALUES (%s, %s)" cursor.execute(sql, ("Alice", 25)) # 参数化查询,防止SQL注入 conn.commit() print("数据插入成功!") except MySQLdb.Error as e: print(f"插入失败:{e}")
查询数据
通过cursor.fetchone()或cursor.fetchall()获取查询结果:
try:
with conn.cursor(MySQLdb.cursors.DictCursor) as cursor: # 返回字典格式结果
cursor.execute("SELECT * FROM users")
results = cursor.fetchall() # 获取所有记录
for row in results:
print(f"ID: {row['id']}, 姓名: {row['name']}, 年龄: {row['age']}")
except MySQLdb.Error as e:
print(f"查询失败:{e}")
关闭连接
操作完成后,务必关闭游标和数据库连接以释放资源:
try:
if conn:
conn.close()
print("数据库连接已关闭。")
except MySQLdb.Error as e:
print(f"关闭连接时出错:{e}")
注意事项
- 异常处理:始终使用
try-except捕获MySQLdb.Error,确保程序健壮性。 - 参数化查询:避免直接拼接SQL字符串,使用
%s占位符防止SQL注入攻击。 - 事务管理:数据变更操作(INSERT/UPDATE/DELETE)后需调用
conn.commit()提交事务。 - 资源释放:使用
with语句或手动关闭游标和连接,避免内存泄漏。
MySQLdb(或mysqlclient)是Python操作MySQL的高效工具,通过简单的API即可实现数据库的增删改查,本文从安装到基础操作提供了完整示例,适合快速上手,对于更复杂的需求(如连接池、ORM框架),可进一步探索DBUtils或SQLAlchemy等高级工具。
希望本文能帮助你掌握MySQLdb的使用!如有疑问,欢迎留言交流。
未经允许不得转载! 作者:python1991知识网,转载或复制请以超链接形式并注明出处Python1991知识网。
原文地址:https://www.python1991.cn/5747.html发布于:2026-05-03





