Como siempre mencionamos en nuestro blog, los ambientes mixtos son una realidad que alcanza también a las bases de datos. Por eso hoy vamos a aprender a hacer consultas a MsSQL desde Linux.
Ya sea para crear una pagina web en php, obtener datos para trabajar en nuestra planilla de calculo, generar reportes, u otro tipo de necesidad desde nuestra estación de trabajo con Linux o desde un servidor, hacer consultas a MsSQL desde Linux es posible gracias a FreeTDS.
Microsoft SQL Server innegablemente es un motor de bases de datos muy afianzado en el mercado, y como tal, muchas empresas tienen sus bases de datos corriendo en este motor.
Muchas veces no es posible hacer una migración total a software libre open source y debemos crear ambientes mixtos para poder satisfacer nuestra necesidades. Por suerte existen soluciones, herramientas, desarrollos o como cada uno prefiera llamarlo que nos van a ayudar a poder enfrentar esos requerimientos. FreeTDS es una biblioteca de programación de software libre, que nos va a permitir interactuar con MsSQL desde Linux.
Comencemos!
En nuestro equipo, validados como superusuario vamos a instalar lo necesario con el comando:
aptitude install freetds-common freetds-bin tdsodbc
Luego de haber instalado, vamos a editar el archivo de configuracion para incluir a nuestro servidor Microsoft SQL Server de la siguiente manera:
vi /etc/freetds/freetds.conf
Arriba observamos algunos ejemplos y en la ultima parte nuestro servidor donde:
[serversql] corresponde al nombre del servidor MsSQL
host = 192.168.2.200 corresponde a la direccion IP
port = 1433 corresponde al puerto TCP
tds version = 8.0 corresponde a la versión a utilizar, en mi caso se trata de Microsoft SQL Server 2014 Express ya que, obviamente, MsSQL NO es un software gratuito.
En cuanto a las versiones, podemos decir que con la version 8.0 vamos a tener compatibilidad para todas las versiones de MsSQL
Empezando a consultar
En el ejemplo he creado una base llamada Linux que contiene una tabla llamada Usuarios con el siguiente contenido:
Usuario Nombre Apellido email -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- jperez Juan Perez juan@mail.com jrodriguez Jose Rodriguez jrodriguez@mail.com afernandez Antonio Fernandez afernandez@mail.com ralvarez Rosa Alvarez ralvarez@mail.com mhernandez Maria Hernandez mhernandez@mail.com agonzalez Ana Gonzalez agonzalez@mail.com (6 filas afectadas)
Ahora, vamos a ver como tenemos que hacer para consultar esa tabla MsSQL desde Linux
Vamos a instalar un cliente para consultas desde la terminal de la siguiente manera:
aptitude install sqsh
Luego de que la instalación finalice, vamos a ejecutar nuestra consulta de la siguiente manera:
sqsh -S sqlserver -U linux -P pruebalinux -D linux
Donde, -S sqlserver es el nombre de nuestro servidor según el archivo de configuracion, -U linux el nombre de usuario, -P pruebalinux la clave del usuario y -D linux la base de datos que vamos a consultar
Se nos abrira una nueva linea de comando donde vamos a ejecutar nuestras consultas.
Vamos a hacer una simple consulta de todos los registros de nuestra tabla usuarios y que el resultado nos lo de separado por comas.
En el ejemplo consultamos la consulta de TODOS los registros de la tabla usuarios con el comando
select * from usuarios
Y con el comando
go -m csv
Nos dara el resultado separado por comas.
Esta es LA PUNTA DEL OVILLO hay MUCHO para hacer y aprender. Se puede generar la salida a archivo en distintos formatos como por ejemplo html.
En futuras entregas les voy a mostrar algunas opciones muy utiles.
No dejen de compartir!
Hasta la próxima!
Eduardo