今天早上升级了mssql服务器,我无法再连接到它
sqlcmd -S localhost -U SA -P xxxxxxxx
Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:TCP提供程序:错误代码0x2746。 Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:客户端无法建立连接。
从SSMS:
已成功与服务器建立连接,但是在登录过程中发生了错误。 (提供者:SSL提供程序,错误:0)(Microsoft SQL Server,错误:10054)
OS 最新的Debian 9
OpenSSL OpenSSL 1.0.1t 2016年5月3日和OpenSSL 1.1.1c 2019年5月28日
SQL Server SQL Server 2017
答案 0 :(得分:5)
出现此问题的原因是,用于Ubuntu 16.04的SQL Server 2017/2019程序包依赖于OpenSSL版本1.0。虽然您的Debian openssl似乎在1.1上。在获得用于openssl 1.1更新的Ubuntu 18.04的软件包之前,您可以按照以下博客的附加说明中的步骤操作,并在版本1.0的/ opt / mssql / lib路径中创建指向libssl.so和libcrypto.so的链接。
一旦创建了适当的链接,到SQL Server的连接就应该起作用。
答案 1 :(得分:2)
我的意思是为libssl.so和libcrypto.so创建到/ opt / mssql / lib文件夹的软链接的步骤。首先,“查找”这两个文件,如下所示。
root@gf-sql19-ub:/# locate libcrypto.so
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
root@gf-sql19-ub:/# locate libssl.so
/usr/lib/x86_64-linux-gnu/libssl.so.1.0.0
/usr/lib/x86_64-linux-gnu/libssl.so.1.1
找到链接后,即可创建软链接。 (注意,如果debian 9的路径不同,请相应地更改它们。如果找不到这两个文件,则可能必须从debian9 repo手动安装openssl 1.0软件包并找到这些文件。)
cd /opt/mssql/lib
ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 libcrypto.so
ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 libssl.so