lunes, 20 de julio de 2009

SQLServer y Ubuntu

Acabo de conectarme con SQL Server desde Ubuntu.

Hay que instalar los siguientes paquetes:

sudo apt-get install unixodbc unixodbc-dev freetds-dev sqsh tdsodbc

Editar el fichero /etc/freetds/freetds.conf y añadir las siguientes lineas:


[MISERVIDOR]
host = 192.168.1.36
port = 2301
tds version = 7.0

el valor de "tds version" varía en función de la versión de sqlserver que se esté usando. En mi caso es un SQLExpress 2005, asi que "tds version" tiene que ser 7.0. Podeis consultar las versiones aqui:

http://www.freetds.org/userguide/choosingtdsprotocol.htm

En el fichero /etc/odbc.ini:

[MISERVIDOR]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Servername = MISERVIDOR
Database = prueba_development
Trace = No
UID = david
pwd = david


He tenido problemas porque el SQL Server del que dispongo es una version SQLExpress 2005, que no admite conexiones remotas por defecto. En el panel de control de SQL Server Configuration Manager, hay que habilitar las conexiones remotas.

Si no se accede por el browser de nombres de SQLServer, tienes que definir un puerto en SQL Server Configuration Manager => Protocols for SQLExpress => TCP/IP, en "IP All" => TCP Dynamic Ports. Ahí he definido el puerto 2301, que es el que aparece en el fichero /etc/freetds/freetds.conf.

Para probar la conexion basta con ejecutar:

sqsh -S MISERVIDOR -U david -P david

Si aparece ">1" es que te has conectado. Ahora puedes ejecutar:

use prueba_development
go
select * from mitabla
go

Con la utilidad iodbcadm-gtk, tambien puedes crear el dsn. Primero tienes que definir el driver, diciendole que el fichero del driver es:
/usr/lib/odbc/libtdsodbc.so

y el fichero de setup es:
/usr/lib/libtdsS.so

Luego defines el dsn con ese driver y pruebas la conexion.

3 comentarios:

  1. gracias por el aporte, me sirvio bastante

    ResponderEliminar
  2. he probado los siguiente sintaxis en la terminal

    sqsh -S servidor sql -U usuario por defecto sql -P contraseña servidor
    pero al intentar conectar me sale el siguiente mensaje:
    unable to conect: adaptive server is unavailable or does not exist.
    he probado conectividad al servirdor con windows 7 y xp no tengo problemas. espero sus sugerencias
    gracias.

    ResponderEliminar
  3. estoy tratando de conectar un sistema de gestion desarrollado en powerbuilder y la base de datos esta en sql server, ya baje e instale freetds pero aun no logro establecer conexion.

    ResponderEliminar