在 Linux 中配置 ODBC 驱动程序

Configure ODBC drivers in Linux

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

但我仍然收到此错误:

[unixODBC][Driver Manager] Data source name not found, and no default driver specified

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

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

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

if I'm trying to connect to multiple servers at the same time, how should I configure odbc.ini file in this case?

如果您想连接到多个服务器,您需要为每个服务器创建一个单独的 DSN 条目并使用多个 pyodbc connection 对象。要么,要么在 SQL 服务器实例之一上设置 "Linked Server",这样您就可以通过同一个 pyodbc 连接访问这两个实例。

in my database connection string, should I enter the driver name as {SQL Server} or {FreeTDS}?

如果您正在编辑 "odbc.ini",那么您就是在创建 DSN 条目。您将在连接字符串中使用 DSN 名称,pyodbc 将从 "odbc.ini".

中的相应条目中获取详细信息(服务器名称、数据库名称)

这是一个使用 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 服务器版本 运行 和免费 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

祝你好运。