在python中用cursor操作mysql需先建立连接并获取游标,安装pymysql及cryptography(mysql 8.0+),配置含host、port、user、password、database和utf8mb4 charset的连接参数,创建连接后获取dictcursor游标,执行sql并关闭资源。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Python项目中用Cursor对象操作MySQL数据库,必须先建立有效连接并获取可执行SQL的游标实例,否则所有数据库操作都会报错。
安装PyMySQL驱动
PyMySQL是纯Python实现的MySQL客户端,无需编译依赖,直接安装即可:
pip install pymysql
若使用MySQL 8.0+,需额外安装cryptography支持新认证插件:
pip install cryptography
配置并建立数据库连接
连接前确认MySQL服务已运行,且你掌握以下信息:【host、port、user、password、database四项缺一不可】
创建连接字典,charset必须设为utf8mb4以支持emoji和四字节UTF-8字符:
config = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'your_password',
'database': 'test_db',
'charset': 'utf8mb4',
'autocommit': True
}
调用pymysql.connect(**config)创建连接对象,【db参数指定的数据库必须已存在,否则抛出pymysql.err.OperationalError】
获取Cursor对象并验证可用性
方法一:基础游标获取
conn = pymysql.connect(**config)
cursor = conn.cursor()
方法二:带返回类型控制的游标(推荐)
cursor = conn.cursor(pymysql.cursors.DictCursor)
——这样fetchone()返回的是字典而非元组,字段名自动作为key,避免靠索引取值出错。
方法三:执行简单查询验证游标是否就绪
cursor.execute("SELECT VERSION()")
version = cursor.fetchone()
print(f"MySQL版本:{version[0]}")
这一步操作起来很简单,直接运行就能看到输出;如果报错,请回头检查config中database是否存在、用户是否有该库权限。
执行SQL语句并关闭资源
第一步:执行INSERT语句插入一条记录
cursor.execute("INSERT INTO users (name, email) VALUES (%s, %s)", ("张三", "zhangsan@example.com"))
第二步:执行SELECT查询并遍历结果
cursor.execute("SELECT id, name, email FROM users WHERE id > %s", (1,))
rows = cursor.fetchall()
for row in rows:
print(row)
第三步:释放资源(必须执行)
cursor.close()
conn.close()
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











