我正在尝试通过遵循文档https://docs.microsoft.com/pl-pl/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017在Linux中设置ms-sql服务器
SQL服务器状态为活动(正在运行)
执行命令时出现以下错误
sqlcmd -S localhost -U SA -P ''
错误:
Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:TCP提供程序:错误代码0x2746。Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:客户端无法建立连接。
我也通过给出命令来尝试
sqlcmd -S 127.0.0.1 -U SA -P ''
但是问题没有解决,并且显示相同的错误。
当我尝试输入错误的密码时,它也会显示相同的错误。
请帮助我解决这个问题。提前致谢 !
恢复为14.0.3192.2-2会有所帮助。
但是,不仅在从Ubuntu 16.04升级到18.04的情况下,而且在Ubuntu 18.04上的每次SQL Server 2017安装中,也可以使用Ola774指示的方法解决问题。
看来Microsoft现在在cu16中为cu10中应用的ssl版本问题弄乱了自己的补丁(https://techcommunity.microsoft.com/t5/SQL-Server/Installing-SQL-Server-2017-for-Linux -Ubuntu-18-04-LTS / ba-p / 385983)。但是链接ssl 1.0.0库是可行的。
因此,请执行以下操作:
停止SQL Server
sudo systemctl stop mssql-server
通过以下方式打开服务配置的编辑器
sudo systemctl edit mssql-server
这将为原始服务配置创建替代。第一次使用覆盖文件(或更确切地说是“插入文件”)为空是正确的。
在编辑器中,将以下行添加到文件中并保存:
[Service] EnvirOnment="LD_LIBRARY_PATH=/opt/mssql/lib"
创建指向OpenSSL 1.0的符号链接以供SQL Server使用:
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /opt/mssql/lib/libssl.so sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /opt/mssql/lib/libcrypto.so
启动SQL Server
sudo systemctl start mssql-server
sudo apt-get install mssql-server=14.0.3192.2-2
恢复此版本对我有用。
我的情况是在Ubuntu Server 18.04.2上全新安装(所有最新版本),从sqlcmd接收到客户端连接错误:
Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:TCP提供程序:错误代码0x2746
您可以回滚到以前版本的命令:sudo apt-get install mssql-server=14.0.3192.2-2
或保留新版本通过以下MSSQL_Ubuntu的回答。
还禁用 mssql-server软件包上的更新:
sudo apt-mark hold mssql-server
这不会阻止您在需要时手动进行更新。
从Ubuntu 16.04升级到18.04仍会导致一些问题
少数系统可能需要1.0版的OpenSSL库才能连接到SQL Server。可以按以下步骤使用OpenSSL 1.0:
停止SQL Server sudo systemctl停止mssql-server 打开服务配置的编辑器 sudo systemctl edit mssql-server 在编辑器中,将以下行添加到文件中并保存: [Service] EnvirOnment=“ LD_LIBRARY_PATH = / opt / mssql / lib” 为SQL Server创建指向OpenSSL 1.0的符号链接,以使用 sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /opt/mssql/lib/libssl.so sudo ln -s / usr / lib / x86_64-linux-gnu / libcrypto.so.1.0.0 /opt/mssql/lib/libcrypto.so 启动SQL Server sudo systemctl启动mssql-server 希望对您有所帮助