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

Python连接MySQL数据库主要通过mysql-connector-pythonPyMySQLSQLAlchemy等第三方库实现,其中最常用的是mysql-connector-python库,下面将详细介绍连接步骤、代码示例以及常见问题的解决方法。

安装MySQL连接库

首先需要安装MySQL连接库,推荐使用pip进行安装:

python怎么连接mysql,Python高效连接MySQL指南

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)

常见问题解决

  1. 连接被拒绝错误:检查MySQL服务是否启动,用户名密码是否正确
  2. 字符编码问题:在连接参数中添加charset='utf8mb4'
  3. 超时问题:添加connect_timeout参数设置连接超时时间
  4. SSL连接:生产环境建议使用SSL连接,添加ssl_ca参数

最佳实践建议

  1. 使用环境变量存储敏感信息,不要将数据库密码硬编码在代码中
  2. 始终使用异常处理,确保连接正确关闭
  3. 使用参数化查询防止SQL注入攻击
  4. 定期更新连接库到最新版本
  5. 生产环境使用连接池提高性能

通过以上步骤,您可以轻松地在Python项目中连接和操作MySQL数据库,根据项目需求选择合适的连接方式,并遵循安全最佳实践,可以确保数据库操作的效率和安全性。

未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网

原文地址:https://www.html4.cn/5553.html发布于:2026-07-19