Python连接MySQL数据库的方法

Python连接MySQL数据库的方法
最新回答
小面包

2026-10-24 10:22:29

Python连接MySQL数据库需通过第三方库实现,核心步骤包括安装库、配置连接参数、执行SQL操作及管理资源。以下是具体方法:

一、安装必要的库

Python无内置MySQL模块,需安装第三方库,推荐以下两种:

  • pymysql:使用广泛,文档丰富,安装命令:pip install pymysql
  • mysql-connector-python:官方维护,安装命令:pip install mysql-connector-python

二、基本连接方式

以pymysql为例,需提供主机地址、用户名、密码、数据库名等参数:

import pymysqlconn = pymysql.connect( host='localhost', # 主机地址,远程数据库需替换为实际IP user='root', # 用户名 password='your_password', # 密码 database='test_db', # 数据库名 port=3306 # 端口,默认3306可省略)cursor = conn.cursor() # 创建游标对象cursor.execute("SELECT * FROM users") # 执行SQL查询result = cursor.fetchall() # 获取结果print(result)cursor.close() # 关闭游标conn.close() # 关闭连接

关键点:

  • 若数据库非本地,需修改host为实际IP。
  • 非默认端口(如3307)需通过port参数指定。
三、插入与更新数据

执行插入或更新操作时,必须提交事务,否则数据不会生效:

cursor.execute("INSERT INTO users (name, age) VALUES ('Tom', 25)")conn.commit() # 提交事务,确保数据写入# 若需回滚未提交操作,调用 conn.rollback()

常见错误:

  • 忘记commit():数据仅暂存于事务,未持久化。
  • 异常时未回滚:可能导致数据不一致。
四、使用上下文管理器(推荐)

通过with语句自动管理连接与游标,避免资源泄露:

with pymysql.connect( host='localhost', user='root', password='your_password', database='test_db') as conn: with conn.cursor() as cursor: cursor.execute("SELECT * FROM users") print(cursor.fetchall())# 无需手动调用 close(),with 块结束后自动释放资源

优势:

  • 代码更简洁,减少手动关闭资源的遗漏风险。
  • 异常时自动回滚事务(需配合try-except使用)。
五、完整操作流程图示

  1. 安装库:选择pymysql或mysql-connector-python。
  2. 建立连接:配置host、user、password等参数。
  3. 执行SQL:通过游标对象操作数据。
  4. 提交/回滚:插入/更新时调用commit(),异常时rollback()。
  5. 关闭资源:手动关闭或使用with语句自动处理。
六、注意事项
  • 参数准确性:确保host、port、database等参数与MySQL服务配置一致。
  • 异常处理:建议用try-except捕获异常,避免程序崩溃。
  • 性能优化:频繁操作时,可复用连接对象,减少重复创建开销。

掌握以上方法后,Python连接MySQL数据库即可高效、安全地完成数据操作。