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

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

问题描述:

今天早上升级了mssql服务器,我无法再连接到它

Upgraded mssql-server this morning and I can't connect to it anymore

sqlcmd -S localhost -U SA -P xxxxxxxx

Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:TCP提供程序:错误代码0x2746. Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:客户端无法建立连接.

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.

从SSMS:

已成功与服务器建立连接,但是在登录过程中发生了错误. (提供者:SSL提供程序,错误:0)(Microsoft SQL Server,错误:10054)

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0) (Microsoft SQL Server, Error: 10054)

OS 最新的Debian 9

OS Debian 9 up-to-date

OpenSSL OpenSSL 1.0.1t(2016年5月3日)和OpenSSL 1.1.1c(2019年5月28日)

OpenSSL OpenSSL 1.0.1t 3 May 2016 and OpenSSL 1.1.1c 28 May 2019

SQL Server SQL Server 2017

SQL Server SQL Server 2017

出现此问题的原因是,用于Ubuntu 16.04的SQL Server 2017/2019软件包依赖于OpenSSL版本1.0.虽然您的Debian openssl似乎在1.1上.在获得适用于Ubuntu 18.04且具有openssl 1.1更新的软件包之前,您可以按照以下博客的附加说明中的步骤操作,并在版本1.0的/opt/mssql/lib路径中创建指向libssl.so和libcrypto.so的链接.

The reason why you are having issues with this is because SQL Server 2017/2019 packages meant for Ubuntu 16.04 have a dependency on OpenSSL version 1.0. While your Debian openssl seems to be on 1.1. Until we get a package meant for Ubuntu 18.04 with openssl 1.1 updates, you can follow the steps in additional note of following blog and create links to libssl.so and libcrypto.so for version 1.0 into /opt/mssql/lib path.

一旦创建了适当的链接,到SQL Server的连接就应该起作用.

Once the appropriate links are created, the connectivity to SQL Server should work.