Python连接MySQL数据库的完整指南

Python连接MySQL数据库主要通过mysql-connector-pythonPyMySQL等第三方库实现,这些库提供了简洁高效的API,使得在Python中执行SQL查询、管理数据库连接变得轻而易举,无论是数据分析、Web开发还是自动化脚本,掌握Python与MySQL的交互都是提升工作效率的关键技能。

安装必要的库

在开始编写代码之前,首先需要安装MySQL连接库,最常用的两个选择是:

python如何连接mysql代码,Python连接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