Python - Linux - 使用Windows凭据连接到MS SQL - FreeTDS + UnixODBC + pyodbc或pymssql

时间:2010-05-24 19:37:39

标签: python pyodbc freetds unixodbc pymssql

似乎没有任何好的说明来进行此设置。有没有人有任何好的指示?我是一个Linux菜鸟,所以要温柔。我确实看到another post类似,但没有真正的答案。

我有几个问题。

  1. FreeTDS“似乎”无法正常工作。我正在尝试连接,并使用“tsql”命令获取以下消息:“默认数据库设置为databaseName 连接到服务器时出现问题“但它没有提到问题所在。

    1. 我尝试使用pyodbc连接时得到的错误是:“pyodbc.Error:('08S01','[08S01] [unixODBC] [FreeTDS] [SQL Server]无法连接:Adaptive Server是不存在或不存在(20009)(SQLDriverConnectW)')“

    2. 我尝试过与pymssql类似的东西,但我遇到了类似的问题。我不断收到我无法连接的错误,但它没有告诉我原因。

3 个答案:

答案 0 :(得分: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()

答案 1 :(得分:1)

构建FreeTDS(http://www.freetds.org/userguide/config.htm)时:

./configure --with-tdsver=8.0 --enable-msdblib

答案 2 :(得分:0)

该错误表明TDS版本设置不正确。您可以在FreeTDS的配置设置中进行设置。您没有提到您正在使用的MSSQL版本。但是,如果你使用说2005,将8.0设置为TDS版本将起作用。