0x2746 错误 msodbcsql 连接到 SQL Server 2016

0x2746 错误 msodbcsql 连接到 SQL Server 2016

sqlcmd当我尝试使用我的 SQL Server 2016 数据库时出现错误。

我可以成功连接到端口 1433

(venv) xxxx@ip-xxx-xx-xx-xxx:/etc$ telnet xx.xxx.xxx.202 1433
Trying xx.xxx.xxx.202...
Connected to xx.xxx.xxx.202.
Escape character is '^]'.

但是,当我尝试以下操作时,服务器正在应答:

(venv) xxxx@ip-xxx-xx-xx-xxx:/etc$ sqlcmd -S xx.xxx.xxx.202 -U sa -P password
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2746.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Client unable to establish connection.

我可以成功使用其他 OBDC 驱动程序(例如使用 isql 的 FreeTDS),但使用 sqlcmd 的 FreeTDS 驱动程序会出现“不支持的驱动程序消息”。

有人有类似的问题或关于如何解决的想法吗?

更新

客户信息:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal

ODBCinst.ini:

[SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.7.so.2.1
UsageCount=1

[FreeTDS]
Description=v0.91 with protocol v7.2
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.7.so.2.1
UsageCount=1

SQL Server 版本

Microsoft SQL Server 2016 (SP1-CU8) (KB4077064) - 13.0.4474.0 (X64)
Feb 24 2018 13:53:17   Copyright (c) Microsoft Corporation  
Enterprise Edition: Core-based Licensing (64-bit) 
on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor) 

答案1

经过大量研究、反复试验,我将 openssl (1.1.1f) 升级到我使用的更高版本 (1.1.1k),问题得到了解决。

按照此帖子的说明进行操作: 如何修复 SQL Server 的 Microsoft ODBC Driver 17

尽管这是由于不同的错误导致的。升级 openssl 修复了我的 TCP 提供程序 0x2746 错误。

相关内容