DeepSeek 如何接入 MySQL?用 Python 参数化查询读取数据

用本地 Python 和获准只读账号读取 MySQL,参数化绑定筛选值,并核对结果和连接失败。

DeepSeek 本身不会因你提供数据库名称就获得 MySQL 访问权限。可以让它辅助写 SQL,再由本地 Python 使用获准的只读账号执行参数化查询。本例只读取指定地区的演示订单,并限制返回数量。

准备输入与运行环境

Python 3.11,安装 mysql-connector-python。前提是已有你有权访问的 MySQL 测试数据库,存在 orders 表,列为 order_id、region、amount_cents;创建演示数据应由数据库负责人完成。连接信息通过 DB_HOST、DB_USER、DB_PASSWORD、DB_NAME 环境变量提供,不写入提示词。

DeepSeek 如何接入 MySQL?用 Python 参数化查询读取数据

给 DeepSeek 的任务说明

请写 Python MySQL Connector 的只读 SELECT 示例。表 orders 有 order_id、region、amount_cents,只查指定 region 的前 20 条,按 order_id 排序。用 %s 参数绑定值,不拼接用户输入。凭证来自环境变量,连接失败应报告失败,不自动改表或重试写入。

在本地运行与检查

将下面代码保存为 example_16.py。进入保存该文件的目录,在终端执行 python example_16.py。代码应由你检查后执行,按实际字段修改。

import os
import mysql.connector

required = ["DB_HOST", "DB_USER", "DB_PASSWORD", "DB_NAME"]
if any(not os.environ.get(k) for k in required):
    raise RuntimeError("先配置测试数据库环境变量")
connection = mysql.connector.connect(
    host=os.environ["DB_HOST"], user=os.environ["DB_USER"],
    password=os.environ["DB_PASSWORD"], database=os.environ["DB_NAME"],
    connection_timeout=10)
cursor = None
try:
    cursor = connection.cursor(dictionary=True)
    region = "East"
    cursor.execute(
        "SELECT order_id, region, amount_cents FROM orders "
        "WHERE region = %s ORDER BY order_id LIMIT 20", (region,))
    rows = cursor.fetchall()
    print("rows", len(rows))
    for row in rows:
        print(row)
finally:
    if cursor is not None:
        cursor.close()
    connection.close()

值占位符与表名不是同一回事

%s 占位符绑定地区这样的值,不要给它加引号,也不要使用 f-string 拼接 region。表名与列名在本例固定,不能用同一个占位符绑定动态表名;需要动态结构时采用经过审核的白名单。参数绑定也不能代替数据库最小权限。

远程连接要补哪些条件

账号应只具有本例需要的 SELECT 权限,网络允许访问指定端口。生产连接的 TLS、证书验证和主机名核验必须按数据库管理员与连接器支持配置,本例未提供远程安全部署模板。不要把数据库端口开放给公网来解决连接失败。

有响应但没有记录怎么办

rows 0 不等于连接失败。先检查测试表中是否存在 East、大小写及筛选口径,使用获准的数据库客户端执行同条件查询比较。导出的查询结果经检查脱敏后才交给模型解释,AI 无需拿到数据库密码。

怎样确认结果正确

在自己获准的测试库先确认 East 的记录数,再运行示例;返回行数不超过 20,所有 region 都应符合查询条件,编号顺序一致。用数据库客户端执行相同 SELECT 对照。未配置环境变量时应明确失败;连接异常不应被报告为查询成功。

适用边界与常见问题

本文核对了连接器官方代码中的参数化 execute 接口,但没有连接真实 MySQL 服务,未对你的权限、TLS 或数据做实测。演示表结构是假设前提,实际列名、驱动版本、认证插件及网络配置需按你的测试环境调整。

资料依据

接口说明核验日期:2026 年 10 月 1 日。MySQL Connector 官方游标代码;MySQL Connector 官方接口定义。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/30352.html

赞 (0)
AI小管家的头像AI小管家
Claude 怎么审稿?用事实表检查文章中的数字、承诺和缺失条件
上一篇 1天前
Claude 翻译文档怎么做?按段输出双语对照,核对术语和数字
下一篇 1天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部