dify ≥ 0.8.0版本支持mysql/postgresql数据库节点,需在linux/macos或wsl环境运行;配置时必须使用jdbc格式connection url,选择operation type并正确绑定输入变量与输出字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中接入MySQL或PostgreSQL数据库节点,让工作流能直接查询、插入、更新结构化数据,无需额外部署API服务或编写后端代码。
确认Dify版本与环境支持
进入Dify控制台右上角头像→「系统设置」→「版本信息」,确认当前版本 ≥ 0.8.0。低于该版本的Dify不包含内置数据库节点,强行配置会触发连接失败且无错误提示。
确保Dify后端服务运行在Linux或macOS环境,Windows子系统(WSL)可支持,原生Windows环境暂不兼容数据库驱动加载。
添加数据库节点到工作流
打开任意应用→「编排工作流」→点击画布空白处→选择「添加节点」→在搜索框输入“database”→点击「Database」节点图标拖入画布。
双击该节点打开配置面板,此时界面默认为「MySQL」协议,若需PostgreSQL请手动切换下拉菜单中的「Database Type」。
【必须填写「Connection URL」而非单个字段】:Dify不提供独立的host/port/username/password表单,仅接受标准JDBC格式URL。例如MySQL填写:jdbc:mysql://192.168.1.100:3306/myapp?useSSL=false&serverTimezone=UTC;PostgreSQL填写:jdbc:postgresql://db.example.com:5432/analytics?currentSchema=public。漏掉?useSSL=false会导致MySQL连接超时,漏掉currentSchema参数则PostgreSQL可能查不到表。
配置SQL操作类型与语句
在数据库节点配置页中,「Operation Type」下拉选择:Query(只读)、Insert、Update、Delete、Execute(支持多语句)。
方法一:Query模式下,在「SQL Statement」栏写SELECT语句,如SELECT name, email FROM users WHERE status = ?,问号占位符将自动匹配后续输入变量。
方法二:Insert模式下,语句必须是INSERT INTO形式,且字段名与VALUES必须严格对应,例如INSERT INTO logs (level, message, created_at) VALUES (?, ?, NOW())。如果VALUES中混用NOW()和参数占位符,Dify会执行成功但忽略时间字段的动态值。
方法三:Execute模式允许写多条语句,用英文分号分隔,如BEGIN; INSERT INTO ...; UPDATE ...; COMMIT;。⚠️该模式不校验语法,错误SQL会导致整个工作流中断并返回原始数据库报错信息。
绑定输入变量与映射输出字段
第一步:在节点左侧「Input Variables」区域点击「+ Add Variable」,输入变量名(如user_id),类型选「String」或「Number」,该名称需与SQL中问号顺序严格一致。
第二步:勾选「Enable output mapping」,在下方表格中填入「Column Name」(数据库返回列名,区分大小写)和「Variable Name」(供后续节点使用的变量名),例如把SQL返回的email列映射为contact_email。
第三步:点击「Test Connection」按钮验证URL可达性;若失败,检查防火墙、数据库远程访问权限、用户是否被授予对应库表的SELECT/INSERT权限。测试通过后,点击「Save」完成节点配置。











