【发布时间】:2019-07-18 05:57:31
【问题描述】:
我无法使用我的程序连接托管在 Ubuntu 16.04 中的 SQL Server,我相信这是因为我尝试连接的实例禁用了 TCP/IP(SQL Server 网络配置下的 SQLEXPRESS 协议)。
我如何确定,因为我尝试将我的程序连接到托管在 Windows 中并且能够连接的 SQL Server。
例如,我的实例名称是 SQLEXPRESS,因此我尝试使用 IP Adress\SQLEXPRESS 通过 SSMS 进行连接,但它失败了。但是如果我只使用 IP 地址作为服务器名称,我就能够连接到 SQL。
我试图搜索有关启用 tcp/ip 的 sqlcmd,但所有这些都只是显示更改端口的指南。
那么,如何在 Ubuntu 16.04 中为 ip\SQLEXPRESS 实例启用 tcp/ip 连接?
下图只是一个在windows中为sql实例启用tcp/ip的例子
【问题讨论】:
-
ip address\instance name是错误的方式,不会工作。您需要在其他端口上配置实例侦听,然后通过ip address,port访问它,无需实例名称。 -
所以我可以告诉我们,对于 ubuntu 中的 SQL SERVER,我们不能像那样访问是吗?
-
你可以通过
ipaddress\instancename访问基于win的sql server吗?我不这么认为,除非该实例在默认端口上运行,否则可能。不,你不能告诉任何关于 ubuntu 的信息 - 我只是注意到你的结合 IP 地址和实例名称的想法可能根本不适用于 SQL 服务器。 -
不同意无法使用 ipaddress\instancename 连接 SQL 服务器,我可以向您展示我使用该方法的连接。 drive.google.com/file/d/16kkiNahYZGeGYEvw5bKA00xuT32dxTIO/… 签出上面的图片链接,使用 ODBC 工具测试连接
-
嗯,你的例子是在内部网络上;也许它毕竟没有使用 TCP/IP 连接:) 它可能正在使用其他协议或服务来查询 SQL 服务器数据。 Ubuntu 可能不支持这些服务。无论如何,将您的 SQL 实例配置为侦听特定端口并连接到该端口 - 您应该以这种方式轻松访问您的实例。
标签: sql-server ubuntu ubuntu-16.04 sqlcmd