【问题标题】:How to connect to SQL Server on Windows 10 from WSL 2 Linux C++ application如何从 WSL 2 Linux C++ 应用程序连接到 Windows 10 上的 SQL Server
【发布时间】:2021-04-03 14:51:36
【问题描述】:

我尝试了不同的方法。 SQL Server 连接失败。一切都不适合我。我有一台运行 Windows 10、WSL 2 的主机。我的客人是 Ubuntu。

我正在尝试使用sqlcmd 连接到在我的主机上运行的 SQL Server,但我不确定要在连接中使用什么 IP?

我基本上已经从主机 Windows SQL Server 上的 SQL Server 配置管理器中公开/启用了所有内容。

【问题讨论】:

    标签: sql-server windows-subsystem-for-linux


    【解决方案1】:

    我正在尝试使用 sqlcmd 连接到在我的主机上运行的 SQL Server,但我不确定要在连接中使用什么 IP?

    您可以从/etc/resolv.conf 获取要使用的 IP 地址,如文档中的here,例如

    david@xxxx:~$ cat /etc/resolv.conf
    # This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
    # [network]
    # generateResolvConf = false
    nameserver 172.21.224.1
    

    您通过172.21.224.1 访问Windows 主机。但是由于 Windows 主机被配置为您的名称服务器,您应该能够解析您的 Windows 主机的主机名,并使用该主机名进行连接,或者连接到您的 Windows 主机的“真实”IP 地址。

    由于您不是通过环回地址访问 SQL Server,因此您还必须添加 Windows 防火墙规则。

    但与使用 Docker Desktop 相比,直接执行此操作可能不太常见,并且依赖于Docker's networking features。

    【讨论】:

      【解决方案2】:

      参考the official documentation,

      如果要获取Windows机器的IP地址,请执行以下步骤:

      1. 需要查看resolv.conf的内容:cat /etc/resolv.conf
      2. 查看nameserver。它包含所需的 IP 地址。

      我确实建议您参考 this page 以获得有关解析名称服务器的简要概述。

      基本上,nameserver 包含名称解析器的 IP 地址。此名称解析器有助于将 IP 地址与域名相关联。

      【讨论】:

      • @wai-ha-lee 谢谢你的指导。我现在已经重构了答案。它现在将链接列为参考而不是实际答案。除此之外,我还包含了有关“名称解析器”的简要说明。
      猜你喜欢
      • 2015-12-29
      • 2021-03-04
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 2018-11-23
      相关资源
      最近更新 更多