在Linux

时间:2015-10-08 20:53:40

标签: sql-server linux freetds unixodbc pypyodbc

我已按照此链接中的所有步骤操作: https://code.google.com/p/pypyodbc/wiki/Linux_ODBC_in_3_steps

但我仍然收到这个错误:

  

[unixODBC] [驱动程序管理器]找不到数据源名称,也没有默认值   司机指定

然后当我开始研究更多时,我发现了这个: https://askubuntu.com/questions/167491/connecting-ms-sql-using-freetds-and-unixodbc-isql-no-default-driver-specified

现在它说要修改odbc.ini文件以包含服务器和数据库名称。 但是如果我试图同时连接多个服务器,在这种情况下我应该如何配置odbc.ini文件?

另外 - 在我的数据库连接字符串中,我应该输入驱动程序名称{SQL Server}还是{FreeTDS}?

2 个答案:

答案 0 :(得分:2)

以下是使用FreeTDS,unixODBC和朋友设置的示例:

freetds.conf:

[server1]
        host = one.server.com
        port = 1433
        tds version = 7.3

[server2]
        host = two.server.com
        port = 1433
        tds version = 7.3

ODBC.INI:

[server1]
Driver = FreeTDS
Server = one.server.com
Port = 1433
TDS_Version = 7.3

[server2]
Driver = FreeTDS
Server = two.server.com
Port = 1433
TDS_Version = 7.3

ODBCINST.INI:

[FreeTDS]
Description = FreeTDS with Protocol up to 7.3
Driver = /usr/lib64/libtdsodbc.so.0

Driver =位置可能会有所不同,具体取决于您的FreeTDS发布。

pyodbc connect,DSN free:

DRIVER={FreeTDS};SERVER=one.server.com;PORT=1433;DATABASE=dbname;UID=dbuser;PWD=dbpassword;TDS_Version=7.3;

一些注意事项:

  • 您必须更新TDS版本以匹配您运行的SQL Server版本以及您正在运行的免费TDS版本。版本0.95支持TDS版本7.3。
  • TDS版本7.3适用于MS SQL Server 2008及更高版本。
  • 将TDS版本7.2用于MS SQL Server 2005。

请点击此处了解更多信息:

https://msdn.microsoft.com/en-us/library/dd339982.aspx

祝你好运。

答案 1 :(得分:0)

  

如果我尝试同时连接多台服务器,在这种情况下如何配置odbc.ini文件?

如果要连接到多个服务器,则需要为每个服务器创建单独的DSN条目,并使用多个pyodbc connection对象。或者,或者在其中一个SQL Server实例上设置“链接服务器”,以便您可以通过相同的pyodbc连接访问它们。

  

在我的数据库连接字符串中,我应该输入驱动程序名称{SQL Server}还是{FreeTDS}?

如果您正在编辑“odbc.ini”,那么您正在创建DSN条目。您可以在连接字符串中使用DSN名称,pyodbc将从“odbc.ini”中的相应条目中获取详细信息(服务器名称,数据库名称)。