[SQL SERVER LINUX] Instalación y configuración en Ubuntu 16.04

Microsoft anuncio en Marzo de este año 2016 la disponibilidad de Sql Server en Linux. Vamos a dedicar este articulo a ver el procedimiento para instalar y poner en marcha Sql Server en la distribución de Linux Ubuntu 16.04.

Mientras escribimos este articulo, las distribuciones de Linux compatibles con Sql Server son:

Red Hat Enterprise 7.2
Ubuntu 16.04
Docker Engine 1.8+

Para poder hacer la demostración, vamos a instalar Ubuntu 16.04 en una maquina virtual. En nuestro caso hemos usado HyperV.

Nota: Se necesitan al menos 3.25GB de RAM libres.

instalacion-ubuntu-16-04

Una vez completada la instalación de Ubutu, vamos a instalar y configurar Sql Server bajo Ubuntu siguiendo los siguientes pasos:

1. Descargamos la clave publica de Microsoft y la importamos en el repositorio usando apt-key.

wget https://packages.microsoft.com/keys/microsoft.asc
sudo apt-key add microsoft.asc
rm microsoft.asc

2. Registramos el repositorio para Microsoft Sql Server Ubuntu

curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list

3. Instalamos SQL SERVER

sudo apt-get update
sudo apt-get install -y mssql-server

proceso-de-instalacion-de-sql-server

Si la instalación se ha realizado correctamente, se mostrará un mensaje indicando el comando a ejecutar para lanzar el asistente de configuración
sqlserverubuntufinalizandoinstalacion

4. Lanzamos el asistente de configuración

sudo /opt/mssql/bin/sqlservr-setup

sqlserverubuntuiniciarsqlserver

El asistente se inicia pidiéndonos la contraseña para el usuario “SA”. Nota: Es importante que la contraseña del usuario “SA” cumpla las siguientes condiciones:

  • Longitud mínima 8 caracteres
  • Letras Mayúsculas y minúsculas
  • 1 o más dígitos numéricos
  • 1 o más caracteres no alfanuméricos

A continuación se puede configurar si se quiere iniciar Sql Server Ahora y si se quiere iniciar Sql Server cuando se inicie el sistema operativo.

sqlserverubuntufinalizarconfiguracion

Para comprobar que todo se ha instalado correctamente

systemctl status mssql-server

sqlserverubuntuverificarejecucionservicio

En este punto ya tenemos instalado y configurado el motor de base de datos sql server sobre linux. A continuación, vamos a instalar las utilidades de sql server para linux, las cuales incluyen

– sqlcmd: utilidad de consulta de linea de comandos
– bcp: utildiad para realizar importaciones y exportaciones (bulk)
– Microsoft ODBC Drivers

Lo primero es registrar el repositorio para Microsoft Ubuntu

curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list

sqlserverubunturegistrarrespositoriomicrosoft

A continuación vamos a instalar las tools

sudo apt-get update 
sudo apt-get install mssql-tools

sqlserverubuntuinstalaciontools

Durante el proceso de instalación, se mostrarán 2 mensajes para aceptar los términos de licencia.

sqlserverubuntuinstalaciontoolsterminos

Una vez finalizada la instalación

sqlserverubuntuinstalaciontoolsfinalinstalacion

vamos a ejecutar el comando “sqlcmd” para testear la conexión con la base de datos y lanzar algunas consultas SQL.

sqlcmd

Nota: La autentificación es de tipo SQL y se usa el puerto 1433

sqlcmd -S localhost -U SA -P 'CLAVE'

El comando anterior permite establecer una conexión al servidor sql server local. Una vez conectados vamos a lanzar una serie de comandos SQL básicos. Por ejemplo

  • Creamos una base de datos:
    CREATE DATABASE PROGRAMMINGAPPS;
    go
    
  • Usamos la base de datos creada en el paso anterior
    USE PROGRAMMINGAPPS;
    go
    
  • Creamos una tabla
    CREATE TABLE Clientes(Id int not null, nombre nvarchar(200) not null, telefono varchar(20) not null, mail varchar(200));
    go
    
  • Añadimos una clave primaria
    ALTER TABLE Clientes ADD CONSTRAINT PK_CLIENTES PRIMARY KEY CLUSTERED (id);
    go
    
  • Crear un indice non-clustered
    CREATE NONCLUSTERED INDEX IX_CLIENTES_TELEFONO ON CLIENTES(Telefono);
    go
    
  • Insertamos algunos de registros
    INSERT INTO CLIENTES(Id,Nombre,Telefono,Mail) VALUES(1,'Cliente1','12345','cli1@programmingapps.net');
    INSERT INTO CLIENTES(Id,Nombre,Telefono,Mail) VALUES(2,'Cliente2','22222','cli2@programmingapps.net');
    INSERT INTO CLIENTES(Id,Nombre,Telefono,Mail) VALUES(3,'Cliente3','33333','cli3@programmingapps.net');
    go
    
  • Recuperamos los registros
    Select * from clientes;
    go
    

sqlcmd_ejemplos_consulta

Por último, vamos a probar a conectarnos usando el Sql Managment Studio desde otro PC con Windows.

sqlmanagementstudio_connectar_linux

Para conocer la IP de la máquina linux se puede ejecutar el comando

ifconfig eth0

Nota: recuerda que el firewall tiene que tener el puerto 1433 abierto.

sqlmanagementstudio_estructura_tablas

sqlmanagementstudio_select_clientes