


















Dify 1.0+版本的数据库连接能力迎来全面升级,为开发者提供了API接入与插件工具两套解决方案。无论是通过Http请求节点对接企业级数据库,还是利用SQL查询、Database、SQLite三大插件实现自然语言转SQL等高级功能,本文都将提供详细的配置指南与实战技巧,助你轻松驾驭Dify的数据处理能力。

本教程基于Dify 1.0+ 版本制作,适用于Dify 1.0及以上版本。如果你使用的是更早版本的Dify,建议先升级到1.0版本以获得更好的数据库连接功能和稳定性。
版本特性:
版本检查方法:
登录Dify平台后,在右下角或设置页面可以查看当前版本号
确保版本号为1.0.0或更高版本

插件工具接入:使用Dify提供的数据库相关插件工具,包括SQL查询、Database工具和SQLite工具
每种方法都有其适用场景,下面详细介绍。
适用场景
实施步骤
1. 准备工作
确保你的数据库有可用的API接口,常见的包括:
2. 在Dify中配置Http请求节点
步骤1:创建工作流或对话流
步骤2:配置Http请求节点
节点类型:Http Request
请求方法:GET/POST/PUT/DELETE(根据API需求选择)
URL:你的数据库API地址
Headers:
Content-Type: application/json
Authorization: Bearer your_api_token(如果需要)
下面例子为我在某项目中的其中一个例子,Get的请求方式获取ERP系统中的库存数据:


步骤3:测试接口和节点
可以直接在Http请求节点,按以下操作:


注意事项
插件工具概述
Dify提供了三种主要的数据库插件工具:
工具功能详解
1. SQL查询工具功能
主要功能:
适用场景:
2. Database工具功能
主要功能:
SQL Execute:在已存在的数据库中执行SQL查询
Text to SQL:自然语言转SQL功能
Get Table Schema:获取数据库表结构
CSVQuery:在CSV文件上运行SQL查询
适用场景:
3. SQLite工具功能
主要功能:
创建表 (Create Table):使用SQL CREATE TABLE语句创建新表
删除表或行 (Delete Table or Row):使用SQL DELETE或DROP语句删除表或行
插入行 (Insert Row):使用SQL INSERT语句插入行
插入行 (JSON) (Insert Row (JSON)):使用JSON字符串插入行
查询行 (QueryRow):使用SQL SELECT语句查询行
更新行 (Update Row):使用SQL UPDATE语句更新行
更新行 (JSON) (Update Row (JSON)):使用JSON字符串更新行
适用场景:
安装和配置步骤
第一步:安装插件工具
1. 进入Dify管理后台

2. 搜索并安装数据库工具
在Dify市场中搜索”SQL”、”Database”或”SQLite”


找到对应的插件工具
点击”安装”按钮
3. 验证安装
安装完成后,在工具列表中应该能看到新安装的数据库工具

确保工具状态为”已启用”
第二步:配置数据库连接
重要提示:这是最关键的步骤,配置错误会导致连接失败!
1)SQL查询工具使用和配置
工具使用(下面以工作流为例子):
新建工作流,添加插件到工作流中:


配置参数详解:
点击节点我们可以看到有相关的参数需要配置

数据库类型:用于选择数据库类型,mysql、oracle、oracle11g、postgresql或mssql。
数据库地址:数据库服务器IP地址或域名
端口:数据库端口号(MySQL默认3306,PostgreSQL默认5432)
库名:要连接的数据库名称
用户名:数据库用户名
密码:数据库密码
SQL查询语句:需查查询数据的SQL语句
配置示例
数据库类型:MySQL
主机地址:192.168.1.100
端口:3306
数据库名:myapp_db
用户名:dify_user
密码:your_secure_password


2. Database工具使用和配置
重要提示:Database工具安装后需要先进行授权配置,然后才能配置数据库参数。
第一步:API Key授权配置
以下为授权的具体操作:


凭据名称:可以自己填写(我是填写Dify_Data)
目前这个项目支持的数据库有
mysql,postgresql,sqlite,sqlserver,oracle
mysql+pymysql://root:123456@localhost:3306/test
postgresql+psycopg2://postgres:123456@localhost:5432/test
sqlite:///test.db
mssql+pymssql://<username>:<password>@<freetds_name>/?charset=utf8
oracle+oracledb://user:pass@hostname:port[/dbname][?service_name=<service>[&key=value&key=value…]]oracle+oracledb://user:pass@hostname:port[/dbname][?service_name=<service>[&key=value&key=value…]]er:pass@hostname:port[/dbname][?service_name=<service>[&key=value&key=value…]]
我提供mysql参考上述链接字符串
mysql+pymysql://root:123456@localhost:3306/dify_test
这里还有一个小技巧,就是如果数据库密码是带有@符号的,我们需要转义一下。否自会出现错误。

上述因为密码也带有特殊符号“@” 和后面的数据链接符号@产生了歧义 这样程序连接就会报错
如何解决
若要借助转义的方式来处理包含特殊字符@的连接字符串,在标准的数据库连接字符串里,一般没有通用转义符号能直接用在字符串里。不过可以对特殊字符@进行 URL 编码,@对应的 URL 编码是%40。
最后的变成
mysql+pymysql://root:zzz%40123@192.168.11.84:19030/test_db
这样修改后在连接就OK 了


看到授权成功了,那就可以开始使用了
同样新建工作流(下面也是以工作流为例),在工作流中增加节点。
以下为我在某项目中的实际案例,我主要使用了Text2sql的数据库查询:
工作流中使用:


Database工具功能说明:
Database工具提供4个主要功能:
3. SQLite工具配置
重要提示:SQLite工具安装后,需要先进行API Key授权配置,然后才能配置数据库参数。
第一步:API Key授权配置

第二步:配置数据库连接参数
授权完成后,配置以下参数:
配置参数详解:
数据库文件路径:本地SQLite数据库文件路径(例如:/data/sqlite.db)或内存数据库:勾选此项使用内存数据库,数据不会持久化
1. 本地文件数据库
文件路径:/data/myapp.db
权限:确保Dify有读写权限
2. 云数据库连接
数据库URL:https://your-sqlite-cloud.com/database
认证信息:用户名和密码或API密钥
3. 内存数据库
类型:内存数据库
用途:临时数据存储,测试环境
注意:重启后数据会丢失
高级配置
1. 连接池配置
最大连接数:10-50(根据并发需求调整)
连接超时:30秒
查询超时:60秒
空闲超时:300秒
2. 安全配置
SSL连接:启用SSL/TLS加密
证书验证:验证服务器证书
防火墙设置:只允许Dify服务器IP访问数据库
3. 性能优化
索引优化:为常用查询字段创建索引
查询优化:避免SELECT *,只查询需要的字段
连接复用:合理使用连接池
SQLite工具功能说明:
SQLite工具提供7个主要功能:
注意权限验证
问题描述:配置完成后无法连接到数据库
可能原因和解决方案:
原因1:网络连接问题
解决方案:
– 检查Dify服务器与数据库服务器之间的网络连通性
– 使用ping命令测试网络连接
– 检查防火墙设置
原因2:数据库服务未启动
解决方案:
– 检查数据库服务状态
– 重启数据库服务
– 查看数据库日志文件
原因3:配置参数错误
解决方案:
– 仔细检查主机地址、端口、用户名、密码
– 确认数据库名称是否正确
– 验证字符集和时区设置
问题描述:连接成功但无法执行某些操
– 为用户授予必要权限
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO ‘username’@’host’;
GRANT CREATE, DROP, ALTER ON database_name.* TO ‘username’@’host’;
FLUSH PRIVILEGES;
3. 性能问题问题描述:查询速度慢
解决方案:
— 创建索引
CREATE INDEX idx_user_status ON users(status);
CREATE INDEX idx_user_created_at ON users(created_at);
— 优化查询
SELECT id, name, email FROM users WHERE status = ‘active’ LIMIT 100;
4. 插件工具不显示
问题描述:安装插件后在工作流中找不到解决方案:检查插件是否正确安装和启用刷新浏览器页面检查Dify版本兼容性联系Dify技术支持
5. Database工具授权问题问题描述:Database工具安装后无法配置数据库连接解决方案:确保已完成API Key授权配置检查授权状态是否显示为”已授权”如果授权失败,检查API Key是否正确重新进行授权配置授权完成后才能配置数据库连接参数
6. SQLite工具授权问题问题描述:SQLite工具安装后无法配置数据库连接或执行操作解决方案:确保已完成API Key授权配置检查授权状态是否显示为”已授权”如果授权失败,检查API Key是否正确重新进行授权配置授权完成后才能配置数据库连接参数和执行操作
数据库安全:
API安全:
查询优化:
配置优化:
监控指标:
维护任务:
代码规范:
测试建议:
Dify平台连接数据库提供了两种灵活的方法:API接口接入和插件工具接入。选择哪种方法取决于你的具体需求和环境。
API接口接入适合:
插件工具接入适合:
无论选择哪种方法,都要注意安全性、性能和可维护性。希望这份保姆式教程能够帮助你成功连接Dify平台与数据库,如果遇到问题,可以参考常见问题部分或联系技术支持。
本文由 @Lucky培丽 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自Unsplash,基于CC0协议
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。