Python连接MySQL的完整指南:从安装到实战

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

pyhon如何连接mysql,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