【问题标题】:Configure ODBC drivers in Linux在 Linux 中配置 ODBC 驱动程序
【发布时间】:2016-01-06 15:56:49
【问题描述】:
【问题讨论】:
标签:
sql-server
linux
freetds
unixodbc
pypyodbc
【解决方案1】:
这是一个使用 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
祝你好运。
【解决方案2】:
如果我尝试同时连接多个服务器,这种情况下应该如何配置 odbc.ini 文件?
如果您想连接到多个服务器,您需要为每个服务器创建一个单独的 DSN 条目并使用多个 pyodbc connection 对象。要么,要么在其中一个 SQL Server 实例上设置“链接服务器”,以便您可以通过相同的 pyodbc 连接访问两者。
在我的数据库连接字符串中,我应该将驱动程序名称输入为 {SQL Server} 还是 {FreeTDS}?
如果您正在编辑“odbc.ini”,那么您正在创建 DSN 条目。您将在连接字符串中使用 DSN 名称,pyodbc 将从“odbc.ini”中的相应条目中获取详细信息(服务器名称、数据库名称)。