Não é possível conectar-se ao MS SQL com o pyodbc

2

Eu passei horas tentando realizar uma tarefa simples. Eu tinha o código python que eu costumava executar no windows, e ele acessa um banco de dados MS SQL em um servidor windows 2008. Eu configurei um servidor Ubuntu e quero rodar este script neste servidor. depois de ter instalado o pyodbc, freetds e um monte de outros pacotes eu ainda não consigo conectar ao DB. A string de conexão do Windows que eu estava usando era:

connectionString='DRIVER={SQL Server};SERVER=IP;DATABASE=Market;UID=usr;PWD=psw

depois de pesquisar bastante acabei com três arquivos de conexão odbc.ini odbcinst.ini e freetds.conf e eles parecem, respectivamente:

odbc.ini:

  

[sqlserverdatasource] Driver = Descrição do FreeTDS = conexão ODBC   via FreeTDS Trace = No Servername = banco de dados sqlserver = Market;

odbcinst.ini

  

[FreeTDS] Descrição = driver do driver TDS (Sybase / MS SQL) =   Configuração do /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so   /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so CPTimeout = CPReuse =   FileUsage = 1

freetds.conf

  

[sqlserver]       host = 10.23.11.10;       porta = 1433;       versão tds = 5.0

Agora eu tenho tentado testar a conexão com o seguinte

tsql -S sqlserver

mas recebo o seguinte erro

  

Erro 20017 (gravidade 9):           EOF inesperado do servidor           Erro de sistema operacional 115, "Operação agora em andamento" Erro 20002 (gravidade 9):           Falha na conexão do Adaptive Server

Eu pensei que levaria alguns minutos para fazer isso funcionar, mas perdi muitas horas. Qualquer ajuda é profundamente apreciada. obrigada.

    
por Pedro Braz 22.07.2015 / 21:55

3 respostas

1

Se você está tentando se conectar ao SQL Server da sua máquina Linux, eu recomendo que você siga este link

Isso usa outro driver python pymssql que usa o FreeTDS para se conectar ao SQL Server. Deixe-me saber se isso ajuda.

Melhor Conheça o

    
por meet-bhagdev 31.07.2015 / 02:42
1

Recentemente, desenvolvemos e testamos nossos drivers ODBC do SQL Server com pyODBC 3.0.7 no Python 3.3 e a conexão foi bem-sucedida. Tudo funcionou bem.

Tente fazer o download do driver link mais recente do pyODBC e este driver ODBC do SQL Server
Há um exemplo de seqüências de conexão na documentação. Você pode usá-lo.

    
por Jordan Sanders 30.09.2015 / 10:43
0

Eu me conecto regularmente aos bancos de dados usando python. Minha string de conexão é a seguinte:

  

ConnectionString = 'DSN = MyDSN'

DSN significa Data source Name e seus detalhes são armazenados no arquivo odbc.ini no formulário usado:

  

[MyDSN]

     

Driver = FreeTDS

     

Descrição = conexão ODBC via FreeTDS

     

Rastreamento = Não

     

Nome do servidor = sqlserver

     

Banco de dados = Market

     

USER = DBuser

     

Senha = yourpwd

    
por Marc Vanhoomissen 23.10.2015 / 14:55