Error al conectar con MSSQL mediante ODBC en Debian 7

Iniciado por novalida, 30 Mayo 2014, 17:14 PM

0 Miembros y 1 Visitante están viendo este tema.

novalida

Buenas!

Estoy intentando conectar con una base de datos SQL Server que se encuentra en mi red local utilizando unixodbc y freetds.

Los pasos que he realizado son los siguientes siempre como root:

1º Instalo unixodbc y freetds
aptitude install unixodbc tdsodbc

2º Configuro /etc/odbc.ini añadiendo lo siguiente al archivo
[db_name]
Driver          = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Description     = Base en win
Trace           = Yes
Servername      = serverName
Database        = db_name
TraceFile       = /tmp/db_name-sql.log
ForceTrace      = Yes
port            = 1433


3º Configuro /etc/freetds/freetds.conf añadiendo lo siguiente al archivo:
[serverName]
  host = 192.168.1.1
  port = 1433
  tds version = 7.0


4º Configuro /etc/odbcinst.ini
FreeTDS]
Description = FreeTDS Driver
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
FileUsage = 1
CPTimeout = 5
CPReuse = 5
UsageCount = 2


5º Pruebo la conexión
isql -v db_name

Al probar la conexión me da el siguiente error:
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[01000][unixODBC][FreeTDS][SQL Server]Adaptive Server connection failed
[ISQL]ERROR: Could not SQLConnect


Si realizo un ping serverName obtengo una respuesta y puedo conectar mediante telnet serverName 1433.

Ya he consutado Google pero no he encontrado una respuesta que soluione mi problema por lo que si alguien me puede arrojar un poco de luz se lo agradecería mucho.

Un saludo :)

el-brujo

buff es muy divertido configurar el ODBC... sobretodo cuando está todo aparentemente bien y no funciona.

En mi caso era un windows 2003 con MS-SQL Server y un servidor CentOS

Por defecto no iba:

CitarWarning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified,)

En mi caso cambié  el driver TDS por FreeTDS:


Citar[FreeTDS]     
Description = FreeTDS driver
Driver = /usr/lib/libtdsodbc.so.0
Setup = /usr/lib/libtdsS.so.1

Yo lo configuré en una máquina y funcionaba perfecto (Centos) y en Debian no (prácticamente la misma configuración).

Mira en debian si está todo instalado:

Citarsudo apt-get install freetds-bin freetds-dev freetds-common unixodbc unixodbc-dev

tds.driver

Citar#Driver for MS SQL
[FreeTDS]                       #"FreeTDS" is the unique name for this driver
Description = FreeTDS driver
Driver = /usr/lib/libtdsodbc.so.0
Setup = /usr/lib/libtdsS.so.1
FileUsage = 1
UsageCount =1

tds.datasource

Citar[MSSQL]
Driver      = FreeTDS      # name that we specified in the driver file
Description      = MSSQL ReflectiveLearning
Trace      = No
TraceFile      = /var/log/freetds.log
Servername      = IP    # this  name specified in the freetds.conf
Port      = 1567
Database      = DB
TDS_Version      = 8.0

Y te paso el bash history porque ya ni me acuerdo como lo pude arreglar xD

Citaryum install unixODBC-devel unixODBC freetds-devel freetds
isql
tsql -H Hostname_OR_IP -p PortNumber -U Username
tsql -H IP -p 1567 -U BD
isql -v DSNname Username 'Password'
isql -v unixODBC Username 'Password'
isql -v unixODBC Username 'Password'
cat /etc/freetds.conf
odbcinst -j   
find / -name  libtdsodbc.so.0
odbcinst -q -d
odbcinst -q -d
odbcinst -q -s
odbcinst -q -d
odbcinst -q -s
odbcinst -q -s
odbcinst -q -d
odbcinst -q -s
isql -v FreeTDS Username 'Password'
odbcinst -q -s
tsql -LH
tsql -LH IP
osql -S DSN -U Username -P .Password.
osql -S freeTDS -U Username -P .Password.
odbcinst -q -d   
odbcinst -j   
/etc/odbcinst.ini
cat /etc/odbcinst.ini
cat /etc/odbcinst.ini
isql -v FreeTDS Username 'Password'
isql -v freeTDS Username 'Password'
/etc/odbcinst.iniodbcinst -q -d
odbcinst -q -d
odbcinst -q -d
odbcinst -i -d -f tds.driver.template
odbcinst -i -s -f tds.datasource.template
odbcinst -j   
odbcinst -q -d
/usr/local/bin/php
/usr/local/bin/php /home/el-brujo/public_html/test_conexion.php
odbcinst -q -d
odbcinst -q -s
odbcinst -q -d
odbcinst -j 
tsql
odbcinst -q -s
sqsh -S
odbcinst -q -s
odbcinst -i -d -f tds.driver.template
odbcinst -q -s
find / -name libtdsodbc.so.0
find / -name libtdsodbc
find / -name libtdsodbc.so
cat /etc/freetds.conf
odbcinst -q -d
odbcinst -q -s 
odbcinst -q -s 
odbcinst -j   
cat /etc/odbcinst.ini
odbcinst -j   
cat /etc/odbc.ini
exit