dify Database Query DB-Lib error message 20002, severity 9

dify Database Query plugin Microsoft SQL Server Error :DB-Lib error message 20002, severity 9

plugin verion 0.0.9

Failed to transform tool message: PluginInvokeError: {"args":{},"error_type":"Exception","message":"SQL query execution exception. (pymssql.exceptions.OperationalError) (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (192.168.10.XXX)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (192.168.10.XXX)\n')\n(Background on this error at: ==oohttps://sqlalche.me/e/20/e3q8)"}

issue :sqlserver 用不了 #25

root cause, pymssql load freetds.conf from wrong path,just replicate freetds.conf to any path possible!

add freetds/freetds.conf

[global]
    tds version = 7.0
    client charset = UTF-8
    dump file = /tmp/freetds.log

[MSSQL]
    host = 192.168.10.128
    port = 1433
    tds version = 7.0

modify dify docker-compose.yaml, map your local freetds folder to container's /ect/freetds

docker compose up -d

install freetds in docker container

sudo apt update

sudo apt install freetds-dev freetds-bin

vi /etc/freetds/freetds.conf #tds version 改为7.0

cp /etc/freetds/freetds.conf /root/.freetds.conf

mkdir -p /usr/local/etc

cp /etc/freetds/freetds.conf  /usr/local/etc/freetds.conf

docker commit 883d41b43bed   langgenius/dify-plugin-daemon:0.1.1-local

### 解决 `exec /usr/local/bin/docker-entrypoint.sh: exec format error` 的方法 - **脚本格式转换**:此错误常因脚本文件为 DOS 格式(含回车符 `\r`),而 Linux 系统只识别 Unix 格式(换行符 `\n`)。可使用 `awk` 命令转换格式: ```bash awk '{ sub("\r$", ""); print }' /usr/local/bin/docker-entrypoint.sh > fixed.sh && mv fixed.sh /usr/local/bin/docker-entrypoint.sh ``` 转换后,确保脚本有执行权限: ```bash chmod +x /usr/local/bin/docker-entrypoint.sh ``` - **检查脚本解释器**:保证脚本开头指定了正确的解释器,如 shell 脚本开头应为 `#!/bin/sh` 或 `#!/bin/bash`。使用以下命令查看脚本开头内容: ```bash head -n 1 /usr/local/bin/docker-entrypoint.sh ``` 若解释器路径有误,需修改为正确路径。 - **确保容器内有解释器**:指定 `/bin/bash` 为解释器时,要保证容器内存在 `/bin/bash`。若容器日志报错 `/docker-entrypoint.sh: exec: line 10: /bin/bash: not found`,需去掉 `/bin/bash`,或在构建镜像时安装 `bash`。 - **检查容器启动配置**:启动容器时,确保没有错误的参数或配置影响脚本执行。可参考正确的启动命令,如启动 Docker 服务: ```bash systemctl enable docker.service && systemctl restart docker ``` 查看 Docker 服务状态: ```bash systemctl status docker ``` 验证 Docker 信息: ```bash docker info ``` ### 解决容器 `dify - db - 1` 启动报错显示不健康的方法 - **检查依赖服务**:确保数据库依赖的服务(如网络、存储等)正常运行。 - **查看日志信息**:使用以下命令查看容器日志,以获取更多错误信息: ```bash docker logs dify-db-1 ``` - **检查配置文件**:确认数据库的配置文件(如 `docker-compose.yml` 中关于 `dify - db - 1` 的配置)是否正确,包括端口、环境变量等。 - **检查资源限制**:确保容器有足够的资源(如 CPU、内存等)运行。可以通过 `docker stats` 命令查看容器的资源使用情况。 - **重新创建容器**:若上述方法都无法解决问题,可以尝试删除并重新创建容器: ```bash docker-compose down docker-compose up -d ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值