你是应该是用mysql+pymysql://去连接,而不是mysql://
@ 是URL中的保留字符,需要使用 %40 代替,例如 123%40456
主要是模型的指令遵循能力不强,生成的sql格式不准确,建议换模型。或者针对它生成的sql语句,加一个代码节点进行修改,目前常见的模型生成sql语句错误有前面多了sql字符串,生成的sql都有limit 5,双引号格式问题等。
找环境变量设置 FORCE_VERIFYING_SIGNATURE=false
参考 https://github.com/junjiem/dify-plugin-repackaging
一般是数据库地址不对,肯定不能填localhost,因为插件都是运行在容器内的,localhost也会指向容器内部,你要解决的是容器内如何连接你的宿主机或者你宿主机所在的局域网,询问大模型怎么解决这个问题
dify每个节点对接收的变量类型有限制,比如直接回复这个节点只能接收text和files类型的变量,可以在其前面加个code节点之类的转换一下
参考 https://docs.sqlalchemy.org/en/20/dialects/oracle.html#module-sqlalchemy.dialects.oracle.oracledb
连接不上时,可以在数据库连接配置选项中添加tds参数尝试,例如 {"connect_args": {"tds_version": "7.0"}} 不同的sqlserver版本对应不同的tds版本,具体列表可查看 https://www.freetds.org/userguide/ChoosingTdsProtocol.html#tab.Protocol.by.Product 感谢群友Alpha提供的解决方案