Problema ao conectar-se ao SQL Server 2005 via FreeTDS no FreeBSD

1

Estou tentando conectar-me ao SQL Server 2005 de um servidor FreeBSD com o seguinte comando:

tsql -H DEV -p 1433 -U ****

Isso resulta na seguinte mensagem de erro:

locale is "C"
locale charset is "US-ASCII"
Password: 
Msg 20004, Level 9, State 0, Server OpenClient, Line 0
Read from SQL server failed.
Msg 20014, Level 9, State 0, Server OpenClient, Line 0
Login incorrect.
There was a problem connecting to the server

Como a mensagem de erro informa "Login incorreto", meu primeiro passo foi verificar se estou, de fato, digitando o nome de usuário e a senha corretos. É um login do SQL Server (ou seja, não é autenticação do Windows) e assegurei-me de que ele seja inserido corretamente com diferenciação de maiúsculas e minúsculas. Observe que consigo me conectar usando o mesmo login de um cliente Windows sem problemas.

Meu próximo passo foi despejar um log do FreeTDS:

util.c:288:Starting log file for FreeTDS 0.64
        on 2011-04-12 16:29:57 with debug flags 0x4fff.
iconv.c:195:names for ISO-8859-1: ISO-8859-1
iconv.c:195:names for UTF-8: UTF-8
iconv.c:195:names for UCS-2LE: UCS-2LE
iconv.c:195:names for UCS-2BE: UCS-2BE
iconv.c:361:iconv to convert client-side data to the "US-ASCII" character set
iconv.c:514:tds_iconv_info_init: converting "US-ASCII"->"UCS-2LE"
net.c:168:Connecting to 10.5.5.226 port 1433.
net.c:673:Sending packet

...snipped...

net.c:673:Sending packet

...snipped...

token.c:310:tds_process_login_tokens()
util.c:119:Changing query state from IDLE to DEAD
token.c:2252:tds_client_msg: #20004: "Read from SQL server failed.".  Connection state is now 4.  
token.c:314:looking for login token, got  0()
token.c:105:tds_process_default_tokens() marker is 0()
token.c:108:leaving tds_process_default_tokens() connection dead
util.c:119:Changing query state from DEAD to DEAD
token.c:2252:tds_client_msg: #20014: "Login incorrect.".  Connection state is now 4.  
mem.c:519:tds_free_all_results()

Outra coisa que verifiquei é que a instância do SQL Server aceita conexões remotas via TCP / IP. Eu também posso telnet para o SQL Server na porta 1433 da máquina FreeBSD, então não parece haver um problema geral de conectividade.

Então, no momento, estou morto na água. Qualquer ajuda para diagnosticar essas mensagens de erro ou sugerir outras coisas para tentar seria muito apreciada.

    
por Ben Hoffstein 12.04.2011 / 23:24

2 respostas

0

Acabei seguindo as instruções aqui e agora tudo funciona perfeitamente:

link

    
por 14.04.2011 / 16:26
2

Aparece o erro "DB-Lib error message 20004, gravidade 9: Read from SQL server failed".

No Linux / * nix você pode encontrar o seguinte comportamento: import _mssql  c = _mssql.connect ('hostname: portnumber', 'user', 'pass') Traceback (última chamada mais recente): Arquivo "", linha 1, em _mssql.DatabaseException: mensagem de erro DB-Lib 20004, gravidade 9: Leitura do servidor SQL falhou. Mensagem de erro DB-Lib 20014, gravidade 9: Login incorreto.

Pode acontecer quando uma das seguintes situações é verdadeira:

    O arquivo
  • freetds.conf não pode ser encontrado
  • a versão do tds no arquivo freetds.conf não é 7.0 ou 4.2
  • qualquer conjunto de caracteres é especificado em freetds.conf
  • um conjunto de caracteres não reconhecido é passado para o método _mssql.connect () ou pymssql.connect ().

"Login incorreto" após este erro é falso, mensagens reais de "Login incorreto" têm código = 18456 e severidade = 14.

ref: link

    
por 12.04.2011 / 23:46