Python连接MySQL数据库的完整指南
Python连接MySQL数据库主要通过mysql-connector-python或PyMySQL等第三方库实现,这些库提供了简洁高效的API,使得在Python中执行SQL查询、管理数据库连接变得轻而易举,无论是数据分析、Web开发还是自动化脚本,掌握Python与MySQL的交互都是提升工作效率的关键技能。
安装必要的库
在开始编写代码之前,首先需要安装MySQL连接库,最常用的两个选择是:

mysql-connector-python:MySQL官方提供的连接器PyMySQL:纯Python实现的MySQL客户端
可以通过pip快速安装:
pip install mysql-connector-python # 或 pip install pymysql
基本连接步骤
导入库并建立连接
import mysql.connector
# 创建数据库连接
connection = mysql.connector.connect(
host="localhost", # 数据库服务器地址
user="username", # 用户名
password="password", # 密码
database="dbname" # 数据库名称
)
print("数据库连接成功!")
使用PyMySQL的替代方案
import pymysql
connection = pymysql.connect(
host='localhost',
user='username',
password='password',
database='dbname',
charset='utf8mb4'
)
执行SQL操作
创建游标对象
cursor = connection.cursor()
执行查询语句
# 执行SQL查询
cursor.execute("SELECT * FROM users")
# 获取所有结果
results = cursor.fetchall()
for row in results:
print(row)
执行数据插入
sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
values = ("张三", "zhangsan@example.com")
cursor.execute(sql, values)
connection.commit() # 提交事务
print(f"插入成功,影响行数:{cursor.rowcount}")
高级功能与最佳实践
使用上下文管理器(推荐)
import mysql.connector
from mysql.connector import Error
try:
with mysql.connector.connect(
host="localhost",
database="dbname",
user="username",
password="password"
) as connection:
with connection.cursor() as cursor:
cursor.execute("SELECT version()")
result = cursor.fetchone()
print(f"MySQL版本:{result[0]}")
except Error as e:
print(f"数据库连接失败:{e}")
参数化查询(防止SQL注入)
# 安全的方式:使用参数化查询 query = "SELECT * FROM products WHERE price > %s AND category = %s" params = (100.0, "电子产品") cursor.execute(query, params)
连接池管理
对于需要频繁连接数据库的应用程序,建议使用连接池:
from mysql.connector import pooling
# 创建连接池
connection_pool = pooling.MySQLConnectionPool(
pool_name="mypool",
pool_size=5,
host="localhost",
database="dbname",
user="username",
password="password"
)
# 从连接池获取连接
connection = connection_pool.get_connection()
错误处理与连接关闭
try:
connection = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="dbname"
)
if connection.is_connected():
print("连接成功")
# 执行数据库操作...
except mysql.connector.Error as err:
print(f"错误信息:{err}")
finally:
# 确保连接被关闭
if 'connection' in locals() and connection.is_connected():
cursor.close()
connection.close()
print("数据库连接已关闭")
实际应用示例
以下是一个完整的用户管理示例:
import mysql.connector
from mysql.connector import Error
class MySQLDatabase:
def __init__(self, host, user, password, database):
self.host = host
self.user = user
self.password = password
self.database = database
self.connection = None
def connect(self):
"""建立数据库连接"""
try:
self.connection = mysql.connector.connect(
host=self.host,
user=self.user,
password=self.password,
database=self.database
)
print 未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/15898.html发布于:2026-09-09





