代码之家  ›  专栏  ›  技术社区  ›  Esben Eickhardt

sqlcmd在CMD中工作,而不在bash中工作

  •  0
  • Esben Eickhardt  · 技术社区  · 6 年前

    MSSQL 驱动程序在Ubuntu中工作。我遵循了以下几点 tutorial sqlcmd 从事 Ubuntu 16.04

    # In CMD:
    sqlcmd -S my_server_name -U my_username -P my_password -d my_database
    1> select name from sys.databases
    2> go
    

    # In Ubuntu bash
    sqlcmd -S my_server_name -U my_username -P my_password -d my_database
    Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login timeout expired.
    Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2AFA.
    Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..
    

    我尝试更改数据库的配置,使端口在 1433 ,但仍然没有运气。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Esben Eickhardt    6 年前

    1.在Ubuntu上安装MSSQL驱动程序

    照此 tutorial .

    2.确保数据库上的端口是静态的

    this tutorial 设置静态端口。

    SELECT  
    +    CONNECTIONPROPERTY('net_transport') AS net_transport,
    +             CONNECTIONPROPERTY('protocol_type') AS protocol_type,
    +             CONNECTIONPROPERTY('auth_scheme') AS auth_scheme,
    +             CONNECTIONPROPERTY('local_net_address') AS local_net_address,
    +             CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
    +             CONNECTIONPROPERTY('client_net_address') AS client_net_address
    

    4.连接到数据库(在Ubuntu bash中)

    # Using MSSQL tool
    sqlcmd -S my_server_ip_adress//my_server_name,my_port -U my_username -P my_password -d my_database
    
    # Using netcat
    nc -z -v -w5 my_server_ip_adress my_port