游乐游手机版
首页/AI热点日报/热点详情

Dify集成MySQL/PostgreSQL数据库节点实现数据读写教程

类型:热点整理2026-06-11
Dify0 8 0及以上版本内置数据库节点,需在Linux或macOS环境运行。配置时使用JDBC格式URL连接MySQL或PostgreSQL,选择Query、Insert等操作类型并编写SQL语句,通过问号占位符绑定输入变量,启用输出映射将查询列名转为后续变量。测试连接成功后即可实现工作流中的数据读写。

Dify从0.8.0版本开始,终于内置了数据库节点,这意味着咱们可以直接在工作流里查询、插入、更新MySQL或PostgreSQL的数据,再也不用额外搭一套API服务或者写后端代码了。不过,想玩转这个新功能,有几个关键点得先搞清楚。

如何在Dify中集成数据库节点(MySQL/PostgreSQL)实现数据读写

先确认版本,再检查环境

第一件事,确认你的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权限。测试通过后,点「Sa ve」保存,节点就配置好了。

来源:https://www.php.cn/faq/2627009.html?uid=1589237

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。