unixODBC连接到SQL服务器超时

时间:2016-03-14 17:20:08

标签: sql-server odbc unixodbc

我遇到unixODBC问题。我需要多个连接到不同的Sql server实例,并且所有这些实例都在工作,除了一个。它在主机中有附加参数。

所有主机都是ip或主机名,但正在运行的主机有IP\smth

我试过了:

Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0
Database=dbname
Server=192.168.1.1/PARAM
Port=1433

还尝试了转义,引用等等。

isql -v返回:

[S1T00][unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired
[08001][unixODBC][Microsoft][ODBC Driver 13 for SQL Server]MAX_PROVS: Error Locating Server/Instance Specified [xFFFFFFFF]. 
[08001][unixODBC][Microsoft][ODBC Driver 13 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.
[ISQL]ERROR: Could not SQLConnect

1 个答案:

答案 0 :(得分:0)

我可以通过以下步骤从MAC OSX(Sierra)通过unixODBC连接到SQL Server 2017(使用此映像安装在docker容器中:https://hub.docker.com/r/microsoft/mssql-server-linux/):

  1. 按照此处所述安装ODBC驱动程序:https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server

  2. 找出系统DSN存储在哪个odbc.ini配置文件中以及在哪里找到ODBC驱动程序名称:

    odbcinst -j ... DRIVERS............: /usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini ...

  3. 记住odbcinst.ini文件中的确切驱动程序名称(从步骤1中的驱动程序安装预配置):

    ... [ODBC Driver 13 for SQL Server] ...

  4. 编辑odbc.ini文件并在数据库中添加DSN(此处描述了所有允许的关键字:https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/connection-string-keywords-and-data-source-names-dsns):

    ... [MSSQLTest]
    Driver = ODBC Driver 13 for SQL Server
    Server = 192.168.178.1,1433
    ...

    注意:请在此处使用您的服务器IP地址(或服务器名称)和端口号。

  5. 测试连接(现在应该可以使用):

    isql MSSQLTest sa Password12345 -v

    注意:用您自己的凭据替换用户名“sa”和密码“Password12345”!

    你应该看到:

      

    连接!

  6. 享用含热咖啡因的饮料; - )