Python - Linux - 使用Windows凭证连接MS SQL - FreeTDS+UnixODBC + pyodbc或pymssql
看起来没有什么好的说明来设置这个东西。有没有人能提供一些好的指导?我对Linux不太熟悉,所以请多多包涵。我看到过另一篇相关的帖子,但没有真正的答案。
我遇到了一些问题。
FreeTDS似乎没有“正常工作”。我在尝试连接时,使用“tsql”命令得到以下信息:“默认数据库被设置为databaseName,但连接服务器时出现问题”,但没有说明具体是什么问题。
当我尝试使用pyodbc连接时,出现的错误是:“pyodbc.Error: ('08S01', '[08S01] [unixODBC][FreeTDS][SQL Server]无法连接:自适应服务器不可用或不存在 (20009) (SQLDriverConnectW)')”
我用pymssql尝试了类似的操作,但遇到了类似的问题。我一直收到无法连接的错误,但没有告诉我原因。
3 个回答
0
这个错误提示说明TDS版本没有设置正确。你可以在FreeTDS的配置设置里调整这个版本。你没有提到你使用的是哪个MSSQL版本。不过,如果你用的是2005版本的话,把TDS版本设置为8.0就可以了。
1
在构建 FreeTDS 的时候(你可以在这里找到相关信息:http://www.freetds.org/userguide/config.htm):
./configure --with-tdsver=8.0 --enable-msdblib
2
下面的内容适用于当你设置MS SQL服务器允许远程TCP/IP连接,并且有一个合适的用户可以用来连接时。
你还需要注意正确设置数据库的主机名,这个主机名是MS SQL提供的。
import pymssql
connection = pymssql.connect(
user = 'username',
password = 'password',
host = 'server',
database = 'database',
)
cursor = connection.cursor()
cursor.execute('select * from db;')
rows = cursor.fetchall()