【服务器踩坑】SSMS连接Ubuntu上的SQL Server 2019 报错 TCP Provider: Error code 0x2746

昨天在一台Ubuntu18.04.2 上安装了SQL Server 2019 for Linuxlinux

服务正常启动了,可是却没法经过命令行工具或者远程Windows机器上的SSMS连接。sql

 

SSMS错误是编辑器

 

Sqlcmd的错误是ide

Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2746工具

 

关闭了防火墙,仍是不行。网站

 

无奈访问了一下著名的同性交友网站Stackoverflow,其中有个帖子提到了这是因为SSL版本不一致形成的,按照这个思路继续谷歌spa

而后找到了这个博客命令行

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

博客虽然是Sql Server 2017的出现的问题与2019一致,大体原理是Ubuntu已经把SSL更新到了1.1,可是Sql Server和SSMS以来的SSL是1.0版本的,因为版本不一致形成没法连接。server

 

解决方案:

将MSSQL的SSL设置为1.0版本

依次执行命令

 1 # 先中止MSSQL
 2 sudo systemctl stop mssql-server
 3 
 4 # 编辑服务配置
 5 sudo systemctl edit mssql-server
 6 
 7 # 在打开的编辑器中输入
 8 [Service]
 9 Environment="LD_LIBRARY_PATH=/opt/mssql/lib"
10 #输入完 Ctrl+S 保存 Ctrl + X退出
11 
12 # 给MSSQL建立指向SSL1.0的连接
13 sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /opt/mssql/lib/libssl.so
14 sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /opt/mssql/lib/libcrypto.so
15 
16 # 重启MSSQL
17 sudo systemctl start mssql-server
相关文章
相关标签/搜索