Python连接MySQL的完整指南:从安装到实战
Python连接MySQL主要通过PyMySQL或mysql-connector-python等第三方库实现,这些库提供了与MySQL数据库交互的接口,让开发者能够轻松执行查询、插入、更新和删除等操作,下面将详细介绍连接步骤、代码示例及常见问题。

安装必要的库
确保已安装Python和MySQL数据库,使用pip安装连接库,推荐使用PyMySQL(兼容性好)或mysql-connector-python(官方驱动):
pip install pymysql # 或 pip install mysql-connector-python
建立数据库连接
使用库中的连接函数,传入MySQL服务器的主机、端口、用户名、密码和数据库名等参数。注意:生产环境中应避免硬编码敏感信息,建议使用环境变量或配置文件管理密码。
import pymysql
# 创建连接
connection = pymysql.connect(
host='localhost', # MySQL服务器地址
user='root', # 用户名
password='your_password', # 密码
database='test_db', # 数据库名
port=3306, # 端口,默认3306
charset='utf8mb4' # 字符编码
)
执行SQL操作
连接成功后,通过游标(cursor)执行SQL语句。务必使用异常处理(try-except)确保资源正确释放,防止连接泄漏。
try:
with connection.cursor() as cursor:
# 示例:创建表
sql_create = "CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT, name VARCHAR(100), PRIMARY KEY(id))"
cursor.execute(sql_create)
# 示例:插入数据
sql_insert = "INSERT INTO users (name) VALUES (%s)"
cursor.execute(sql_insert, ('Alice',))
# 提交事务
connection.commit()
# 示例:查询数据
sql_select = "SELECT * FROM users"
cursor.execute(sql_select)
results = cursor.fetchall()
for row in results:
print(row)
except Exception as e:
print(f"操作失败: {e}")
connection.rollback() # 回滚事务
finally:
connection.close() # 关闭连接
使用连接池优化性能
在高并发场景中,频繁创建和关闭连接会降低效率。建议使用连接池(如DBUtils或SQLAlchemy)管理数据库连接,提升资源利用率:
from dbutils.pooled_db import PooledDB
import pymysql
pool = PooledDB(
creator=pymysql,
host='localhost',
user='root',
password='your_password',
database='test_db',
maxconnections=10 # 最大连接数
)
connection = pool.connection()
# 后续操作同上
常见问题与注意事项
- 编码问题:确保连接字符集(如
utf8mb4)与数据库一致,避免中文乱码。 - 安全防护:始终使用参数化查询(如
%s占位符)而非字符串拼接,防止SQL注入攻击。 - 连接超时:设置合理的连接超时参数(如
connect_timeout),避免网络问题导致程序阻塞。 - 资源管理:使用
with语句或try-finally块确保游标和连接被正确关闭。
Python连接MySQL是一个基础且关键的开发技能,通过选择合适的库、遵循安全规范并优化连接管理,可以高效稳定地处理数据操作,无论是开发Web应用还是数据分析项目,掌握这些方法都能大幅提升工作效率。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/9440.html发布于:2026-08-07





