2

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

但我仍然收到此错误:

[unixODBC][Driver Manager] 未找到数据源名称,且未指定默认驱动程序

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

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

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

4

2 回答 2

3

这是一个使用 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 连接,无 DSN:

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 及更高版本。
  • 为 MS SQL Server 2005 使用 TDS 版本 7.2。

请参阅此处了解更多信息:

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

祝你好运。

于 2015-10-11T23:22:27.210 回答
0

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

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

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

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

于 2015-10-09T14:49:16.743 回答