Estou tentando conectar ao banco de dados MS SQL usando freetds e unixodbc . Eu li vários guias sobre como fazê-lo, mas ninguém funciona bem para mim. Quando tento conectar-me ao banco de dados usando a ferramenta isql , recebo o seguinte erro:
$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
Alguém já estabeleceu com sucesso a conexão com o banco de dados MS SQL usando freetds e unixodbc no Ubuntu 12.04? Eu realmente aprecio alguma ajuda.
Abaixo está o procedimento que eu usei para configurar os freetds e o unixodbc . Agradecemos desde já a sua ajuda!
Procedimento
Primeiro, instalei os seguintes pacotes com:
sudo apt-get install unixodbc unixodbc-dev freetds-dev tdsodbc
e freetds configurados da seguinte maneira:
--- /etc/freetds/freetds.conf ---
[TS]
host = SERVER
port = 1433
tds version = 7.0
client charset = UTF-8
Usando a ferramenta tsql , eu posso conectar com sucesso ao banco de dados executando
tsql -S TS -U username -P password
Como preciso de uma conexão odbc , configurei o odbcinst.ini da seguinte maneira:
--- /etc/odbcinst.ini ---
[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
FileUsage = 1
CPTimeout =
CPResuse =
client charset = utf-8
e odbc.ini da seguinte maneira:
--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Servername = SERVER
Server = SERVER
Port = 1433
Database = DBNAME
Trace = No
Tentar conectar-se ao banco de dados usando a ferramenta isql com essa configuração resulta no seguinte erro:
$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
tsql
:sudo apt-get install freetds-bin
Respostas:
Obrigado, sua postagem foi muito útil para mim. Consegui fazê-lo funcionar, eliminando as seguintes linhas do meu arquivo odbcinst.ini
agora meu arquivo odbcinst.ini está assim:
e meu arquivo odbc.ini se parece com isso agora:
Uma vez que simplifiquei tudo, funcionou muito bem. Ainda não consigo fazê-lo funcionar com o RODBC, mas funcionou com o isql.
Não sei se isso vai ajudar, mas sua postagem me ajudou. Obrigado.
fonte
/etc/odbcinst.ini
Este é um exemplo mínimo, mas completo, de como se conectar ao Banco de Dados SQL do Azure com o
isql
Ubuntu 14.04.1 LTS. O exemplo é extraído de Como conectar o banco de dados SQL do Azure a partir do Ubuntu (isenção de responsabilidade: é meu wiki pessoal).Instale os pacotes necessários
Configurar o FreeTDS
Arquivo
/etc/freetds/freetds.conf
Conexão de teste
Neste ponto, a conexão com
tsql
deve funcionar:Observe que
@<HOST>
é necessário. Caso contrário, a conexão termina com um erro:Configurar driver ODBC
Arquivo
/etc/odbcinst.ini
Configurar fontes de dados ODBC
Arquivo
/etc/odbc.ini
<SERVERNAME>
é o mesmo que emfreetds.conf
.Conectar com isql
Observe que
@<HOST>
é necessário. Caso contrário, a conexão termina com um erro:fonte
@<HOST>
aparece já não ser necessário.No meu caso, o problema surgiu por causa de simples recuos no meu arquivo de configuração. Então
/etc/odbc.ini
, tirei todos os recuos e pronto!(
odbcinst.ini
se comporta como uma criança normal e não parece ter birras.)fonte
O Ubuntu anterior à 12.04 tinha um caminho odbc diferente no arquivo /etc/odbcinst.ini.
O caminho do driver antigo era:
Eu mudei para:
Aqui está a configuração completa:
Funciona perfeitamente agora! Obrigado!
fonte