Python连接MySQL数据库的完整指南
Python连接MySQL数据库主要通过mysql-connector-python、PyMySQL或SQLAlchemy等第三方库实现,其中最常用的是mysql-connector-python库,下面将详细介绍连接步骤、代码示例以及常见问题的解决方法。
安装MySQL连接库
首先需要安装MySQL连接库,推荐使用pip进行安装:

pip install mysql-connector-python
或者安装PyMySQL:
pip install pymysql
基本连接步骤
导入连接模块
import mysql.connector # 或者使用PyMySQL # import pymysql
建立数据库连接
# 使用mysql-connector
connection = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="username", # 数据库用户名
password="password", # 数据库密码
database="dbname" # 数据库名称
)
# 使用PyMySQL
# connection = pymysql.connect(
# host='localhost',
# user='username',
# password='password',
# database='dbname'
# )
创建游标对象
cursor = connection.cursor()
执行SQL查询
cursor.execute("SELECT * FROM table_name")
获取查询结果
results = cursor.fetchall()
for row in results:
print(row)
关闭连接
cursor.close() connection.close()
完整示例代码
import mysql.connector
try:
# 建立数据库连接
connection = mysql.connector.connect(
host="localhost",
user="root",
password="your_password",
database="test_db"
)
if connection.is_connected():
print("成功连接到MySQL数据库")
# 创建游标
cursor = connection.cursor()
# 执行查询
cursor.execute("SELECT VERSION()")
# 获取结果
version = cursor.fetchone()
print(f"MySQL数据库版本: {version[0]}")
except mysql.connector.Error as error:
print(f"连接失败: {error}")
finally:
# 关闭连接
if 'connection' in locals() and connection.is_connected():
cursor.close()
connection.close()
print("MySQL连接已关闭")
使用连接池提高性能
对于需要频繁连接数据库的应用,建议使用连接池:
from mysql.connector import pooling
# 创建连接池
connection_pool = pooling.MySQLConnectionPool(
pool_name="mypool",
pool_size=5,
host="localhost",
user="username",
password="password",
database="dbname"
)
# 从连接池获取连接
connection = connection_pool.get_connection()
cursor = connection.cursor()
# ...执行操作...
cursor.close()
connection.close() # 实际是返回到连接池
使用SQLAlchemy ORM连接
对于大型项目,推荐使用SQLAlchemy:
from sqlalchemy import create_engine
# 创建连接引擎
engine = create_engine('mysql+mysqlconnector://username:password@localhost/dbname')
# 执行查询
with engine.connect() as connection:
result = connection.execute("SELECT * FROM table_name")
for row in result:
print(row)
常见问题解决
- 连接被拒绝错误:检查MySQL服务是否启动,用户名密码是否正确
- 字符编码问题:在连接参数中添加
charset='utf8mb4' - 超时问题:添加
connect_timeout参数设置连接超时时间 - SSL连接:生产环境建议使用SSL连接,添加
ssl_ca参数
最佳实践建议
- 使用环境变量存储敏感信息,不要将数据库密码硬编码在代码中
- 始终使用异常处理,确保连接正确关闭
- 使用参数化查询防止SQL注入攻击
- 定期更新连接库到最新版本
- 生产环境使用连接池提高性能
通过以上步骤,您可以轻松地在Python项目中连接和操作MySQL数据库,根据项目需求选择合适的连接方式,并遵循安全最佳实践,可以确保数据库操作的效率和安全性。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/5553.html发布于:2026-07-19





