microsoft for sql-server odbc ubuntu-12.04 freetds isql

sql-server - microsoft - odbc driver for sql server linux



FreeTDS funciona, pero ODBC no puede conectarse (3)

El problema fue esta línea en odbc.ini

[database3] must be [dbs3] in your case.

Para aquellos que también están teniendo este problema, compruebe también la

ServerName = *Points to the name of the server configured in freetds.conf*

Estoy tratando de ejecutar conectar a un servidor MSSQL desde un servidor web Ubuntu 12.04 con FreeTDS y unixODBC.

Usando tsql puedo conectarme al servidor con

~$ tsql -S dbs3 -U <username> -P <password>

No hay problema allí.

Cuando intento conectarme con isql, aparece el siguiente mensaje de error:

~$ isql -v database3 <username> <password> [S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source [01000][unixODBC][FreeTDS][SQL Server]Unknown host machine name. [ISQL]ERROR: Could not SQLConnect

Mis archivos de configuración son los siguientes:

odbc.ini

[database3] Driver=FreeTDS TDS_Version=8.0 Servername=dbs3 Port=1433 Database=benchmark_res

odbcinst.ini

[FreeTDS] Description=FreeTDS v0.91 Driver=/usr/local/lib/libtdsodbc.so Setup=/usr/local/lib/libtdsS.so Trace=Yes TraceFile=/tmp/freetds.log ForceTrave=Yes UsageCount=1

freetds.conf

# This file is installed by FreeTDS if no file by the same # name is found in the installation directory. # # For information about the layout of this file and its settings, # see the freetds.conf manpage "man freetds.conf". # Global settings are overridden by those in a database # server specific section [global] # TDS protocol version ; tds version = 4.2 # Whether to write a TDSDUMP file for diagnostic purposes # (setting this to /tmp is insecure on a multi-user system) ; dump file = /tmp/freetds.log ; debug flags = 0xffff # Command and connection timeouts ; timeout = 10 ; connect timeout = 10 # If you get out-of-memory errors, it may mean that your client # is trying to allocate a huge buffer for a TEXT field. # Try setting ''text size'' to a more reasonable limit text size = 64512 # A typical Sybase server [egServer50] host = symachine.domain.com port = 5000 tds version = 5.0 # A typical Microsoft server [egServer70] host = ntmachine.domain.com port = 1433 tds version = 7.0 [dbs3] host = <server-ip> port = 1433 tds version = 8.0

Seguí la guía de instalación 1. here y 2. here

¿Por qué isql no se conecta correctamente?
Supongo que el error es muy obvio, pero soy demasiado estúpido para verlo: D


Si odbc no encuentra la fuente de datos, significa que está proporcionando la incorrecta.

Probablemente esté intentando conectarse a dbs3 que fallará si no lo tiene en odbc.ini

Debes conectarte a [database3] para ODBC

isql -v database3 <username> <password>


Tuve el mismo problema, descubrí que tienes que ejecutar lo siguiente después de cada modificación de odbc.ini :

odbcinst -i -s -f /etc/odbc.ini

Después de eso, probé esto:

isql -v SERVER USER PWD

y tengo esta salida:

+---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>