unixODBC + ODBC驱动程序13

时间:2017-07-18 16:14:26

标签: odbc unixodbc

我想用以下odbc.ini连接到MSSQL数据库:

[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.0
Trace=yes
TraceFile=/db.log
User=[user]
Password=[password]
Server=[server]\[instance]
Database=[db_name]
UsageCount=5

我可以从PyCharm连接到数据库,因此凭据应该没问题。所有东西都安装在Debian 8和unixODBC版本为2.3.1。 错误信息如下:

[HYT00][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

我没有db.log文件,我不知道如何找出问题所在。当我试图从流浪汉ping服务器一切正常。

我也在Windows上尝试sqlcmd工具,也在流浪者之外的ubuntu 16.04上尝试。在Windows上一切正常,但在Ubuntu上发生同样的错误。 命令:

sqlcmd -S [server]\[instance] -U [user] -d [table_name] -P [password]

您对如何跟踪或调试此问题有一些建议吗?

1 个答案:

答案 0 :(得分:1)

我在DBA找到了答案。 所以在Linux上没有工作命令:

sqlcmd -S [server],[port] -U [user] -d [table_name] -P [password]

function myFunction() {
    var x = document.getElementById("myTopnav");
    if (x.className === "topnav") {
        x.className += " responsive";
    } else {
        x.className = "topnav";
    }
}

你需要以某种方式找到这个端口。在此之后,Pyodbc也开始工作了