当尝试通过指定驱动程序进行连接时,pyodbc似乎无法连接。我能够通过设置DSN进行连接,但是我也希望在用户拥有驱动程序、服务器、UID、PWD和数据库详细信息时建立连接。
我使用Mac并使用FreeTDS驱动程序。
freetds.conf
[MYMSSQL]
host = 0.0.0.0
port = 1433
tds version = 7.3
odbcinst.ini
[FreeTDS]
Description=FreeTDS Driver for Linux & MSSQL
Driver=/usr/local/lib/libtdsodbc.so
Setup=/usr/local/lib/libtdsodbc.so
UsageCount=10
这是我尝试连接的方法:
conn_str = "DRIVER=FreeTDS;SERVER={0};UID={1};PWD={2};DATABASE={3}".format('MYMSSQL', 'sa', 'password','tempdb')
conn = pyodbc.connect(conn_str)
我收到的错误信息是这样的:
pyodbc.OperationalError: ('08001', '[08001] [FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')
当我尝试通过DSN连接时,完全相同的数据库详细信息有效。
FreeTDS
驱动程序还是其他驱动程序? - ansu5555DRIVER={FreeTDS}
,看看会发生什么。 - ansu5555SERVERNAME=
(而不是SERVER=
)。详情请参见此处。 - Gord Thompson