【问题标题】:How to Enable TCP/IP for mssql instance in ubuntu 16.04?如何在 ubuntu 16.04 中为 mssql 实例启用 TCP/IP?
【发布时间】: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


【解决方案1】:

我认为这在 linux 上不起作用的原因是它没有 Windows 可用的 SQL Server Browser 应用程序。此应用程序将请求重定向到 1433 到它当前正在侦听的任何随机端口——这就是为什么它只会在指定端口时连接。就我而言,这很糟糕,因为我不得不处理一个我们没有源代码的古老应用程序。我正在考虑编写一个小应用程序,它将默认流量重定向到 linux msssql 的正确端口。

【讨论】:

    猜你喜欢
    • 2021-01-10
    • 1970-01-01
    • 2019-09-04
    • 2018-09-20
    • 2017-08-13
    • 2016-10-29
    • 2017-03-17
    • 2017-09-01
    • 2017-08-05
    相关资源
    最近更新 更多