必须通过自定义插件接入mysql,先确认账号权限与网络可达性,再用node.js或python封装select接口,最后在coze中配置http插件并测试调用。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在扣子(Coze)中接入自定义MySQL数据库并实时获取业务数据,必须通过「自定义插件」能力实现,因为扣子官方不支持直接填写数据库连接信息或内置MySQL驱动。
确认账号权限与网络可达性
登录你的 MySQL 服务器,执行 SELECT USER(), CURRENT_USER();,确认当前用户具备 SELECT 权限且不是 localhost 限定用户——【若返回 user@localhost,说明该账号无法从外部网络连接,必须新建 host 为 % 或具体 IP 的账号】。
在扣子插件部署服务器(如你自己的云函数或 VPS)上运行 telnet your-mysql-host 3306,验证端口是否开放。若超时失败,需检查安全组、防火墙及 MySQL 的 bind-address 配置(不能为 127.0.0.1)。
编写符合扣子插件规范的 MySQL 查询服务
方法一:使用 Node.js + mysql2 快速封装(推荐)
新建 index.js,安装依赖:npm init -y && npm install mysql2 express;写入以下代码:
```js
const express = require('express');
const mysql = require('mysql2/promise');
const app = express();
app.use(express.json());
const pool = mysql.createPool({
host: process.env.DB_HOST,
port: process.env.DB_PORT || 3306,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
waitForConnections: true,
connectionLimit: 10
});
app.post('/query', async (req, res) => {
const { sql, params = [] } = req.body;
if (!sql || !sql.trim().toUpperCase().startsWith('SELECT')) {
return res.status(400).json({ error: '仅允许 SELECT 查询' });
}
try {
const [rows] = await pool.execute(sql, params);
res.json({ data: rows });
} catch (err) {
res.status(500).json({ error: err.message });
}
});
app.listen(3000);
```
注意:不要在代码中硬编码数据库密码,全部通过环境变量注入;【部署前务必删掉 console.log 和调试语句,否则可能泄露敏感字段】。
方法二:用 Python FastAPI(适合已有 Python 工程团队)
创建 main.py,用 pip install fastapi uvicorn pymysql 安装依赖,核心逻辑是定义 POST /query 接口,接收 JSON 中的 SQL 和参数,执行后返回 JSON 列表。关键点:SQL 字符串必须白名单校验或严格限制为预设模板,禁止拼接用户输入。
在扣子平台注册并配置自定义插件
第一步:进入扣子 Bot 编辑页 → 「插件」→ 「+ 创建插件」→ 选择「自定义插件」。
第二步:填写基础信息:插件名称(如“订单查询”)、描述(“查询 MySQL 中近7天订单状态”)、调用方式选「HTTP」。
第三步:配置请求信息:
• 请求 URL 填你部署好的服务地址,例如 https://your-api.example.com/query(必须 HTTPS);
• 认证方式选「无认证」或「Bearer Token」——若选后者,需在服务端校验 Authorization 头;
• 请求体类型选「JSON」,然后点击「添加参数」,依次添加:
○ 参数名:sql,类型:string,必填,示例值:SELECT order_id, status FROM orders WHERE created_at > ? ORDER BY created_at DESC LIMIT 5;
○ 参数名:params,类型:array,必填,示例值:["2024-06-01"]。
第四步:点击「测试」,输入参数后发送,确保返回格式为 {"data": [...]} 且 HTTP 状态码为 200。
第五步:保存插件,回到 Bot 工作流,在「插件节点」中拖入该插件,绑定变量(如把用户输入的日期传给 params),即可在对话中实时调用。











