在Linux上升级MSQL服务器后无法连接

时间:2019-08-02 12:54:24

标签: sql-server linux

今天早上升级了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

2 个答案:

答案 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的链接。

https://techcommunity.microsoft.com/t5/SQL-Server/Installing-SQL-Server-2017-for-Linux-on-Ubuntu-18-04-LTS/ba-p/385983

一旦创建了适当的链接,到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