Estoy tratando de conectarme a la base de datos MS SQL usando freetds y unixodbc . He leído varias guías sobre cómo hacerlo, pero nadie funciona bien para mí. Cuando intento conectarme a la base de datos con la herramienta isql , aparece el siguiente error:
$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
¿Alguien ha establecido con éxito la conexión a la base de datos MS SQL usando freetds y unixodbc en Ubuntu 12.04? Realmente agradecería algo de ayuda.
A continuación se muestra el procedimiento que utilicé para configurar los freetds y unixodbc . Gracias de antemano por su ayuda!
Procedimiento
Primero, he instalado los siguientes paquetes con:
sudo apt-get install unixodbc unixodbc-dev freetds-dev tdsodbc
y freetds configurados de la siguiente manera:
--- /etc/freetds/freetds.conf ---
[TS]
host = SERVER
port = 1433
tds version = 7.0
client charset = UTF-8
Usando la herramienta tsql , puedo conectarme con éxito a la base de datos ejecutando
tsql -S TS -U username -P password
Como necesito un ODBC conexión configuré odbcinst.ini de la siguiente manera:
--- /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
y odbc.ini de la siguiente manera:
--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Servername = SERVER
Server = SERVER
Port = 1433
Database = DBNAME
Trace = No
Intentar conectarse a la base de datos utilizando la herramienta isql con dicha configuración da como resultado el siguiente error:
$ 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
Respuestas:
Gracias, tu publicación fue muy útil para mí. Pude hacer que funcionara eliminando las siguientes líneas de mi archivo odbcinst.ini
así que ahora mi archivo odbcinst.ini se ve así:
y mi archivo odbc.ini se ve así ahora:
Una vez que simplifiqué todo, funcionó muy bien. Todavía no puedo hacer que funcione con RODBC pero funcionó con isql.
No sé si esto ayudará, pero tu publicación me ayudó. Gracias.
fuente
/etc/odbcinst.ini
Este es un ejemplo mínimo pero completo de cómo conectarse a la Base de datos SQL de Azure con
isql
Ubuntu 14.04.1 LTS. El ejemplo se extrae de Cómo conectar la base de datos SQL Azure de Ubuntu (descargo de responsabilidad: es mi wiki personal).Instalar paquetes necesarios
Configurar FreeTDS
Archivo
/etc/freetds/freetds.conf
Conexión de prueba
En este punto, la conexión con
tsql
debería funcionar:Tenga en cuenta que
@<HOST>
es obligatorio. De lo contrario, la conexión termina con un error:Configurar el controlador ODBC
Archivo
/etc/odbcinst.ini
Configurar fuentes de datos ODBC
Archivo
/etc/odbc.ini
<SERVERNAME>
es el mismo que enfreetds.conf
.Conectar con isql
Tenga en cuenta que
@<HOST>
es obligatorio. De lo contrario, la conexión termina con un error:fuente
@<HOST>
ya no parece ser necesario.En mi caso, el problema surgió debido a las sangrías simples en mi archivo de configuración. Entonces
/etc/odbc.ini
, en , eliminé todas las sangrías y listo(se
odbcinst.ini
comporta como un niño normal y no parece hacer berrinches).fuente
Ubuntu anterior a 12.04 tenía una ruta odbc diferente en el archivo /etc/odbcinst.ini.
El antiguo camino del conductor era:
Lo cambié a:
Aquí está la configuración completa:
¡Funciona como un encanto ahora! ¡Gracias!
fuente