Con la nueva llegada de Microsoft en el mundo Linux y las grandes aportaciones que ahora realiza a favor del opensource, también resulta la llegada de su gestor de base de datos SQL Server la cual aun está en sus inicios y en éste post les enseñaré como instalarla.
Pero no de manera nativa sino a travez de contenedores, en éste caso el popular «Docker» el cual instalaremos de deepines. No profundizaré en el tema de docker porque es bastante amplio. Pero el método es seguro ya que la instalación mediante PPA genera conflictos y podria romper deepin.
Requisitos:
PASO 1:
Escribimos el siguiente comando:
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
Éste comando nos permite descargarla última versión de la imagen del contenedor SQL Server 2017, en caso requiera de una imagen específica después de los 2 puntos, por ejemplo:
sudo docker pull microsoft/mssql-server-linux:2017-GA
Para ver todas las imágenes disponibles entre aquí.
PASO 2:
Para ejecutar la imagen modificaremos el siguiente comando:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' \-p 1433:1433 --name sql1 \-d microsoft/mssql-server-linux:2017-latest
en YourStrong!Passw0rd colocaremos nuestra contraseña para el usuario «SA» y debe contar con los siguiente requisitos:
- La contraseña no debe contener el nombre de la cuenta del usuario.
- La contraseña debe tener una longitud de ocho caracteres como mínimo.
- La contraseña debe contener caracteres de tres de las siguientes categorías:
- Letras en mayúsculas del alfabeto Latín (de la A a la Z).
- Letras en minúsculas del alfabeto Latín (de la «a» a la «z»).
- Dígitos en base 10 (del 0 al 9).
-
Caracteres que no sean alfanuméricos, como signo de admiración (!), signo de moneda ($), signo de almohadilla (#) o porcentaje (%).
Las contraseñas pueden tener hasta 128 caracteres. Se recomienda utilizar contraseñas lo más largas y complejas posible.
Por ejemplo si la contraseña fuera deepineS@2018
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=deepineS@2018' \-p 1433:1433 --name sql1 \-d microsoft/mssql-server-linux:2017-latest
PASO 3:
Comprobar que el contenedor se instaló correctamente, para ellos veremos la lista de contenedores con el siguiente comando:
sudo docker ps -a
Si en la columna estado se muestra «Up» significa que el contenedor se está ejecutando correctamente, en caso contrario puede ingresar aquí.
PASO4:
Por motivos de seguridad es recomendable cambiar la contraseña con la que instalamos SQL Server ya que se almacenó en la variable de entorno MSSQL_SA_PASSWORD
la cual puede ser vista con el comando echo $MSSQL_SA_PASSWORD
.
Para poder modificar ejecutamos el siguiente comando
sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \-S localhost -U SA -P '<YourStrong!Passw0rd>' \-Q 'ALTER LOGIN SA WITH PASSWORD="<YourNewStrong!Passw0rd>"'
Reemplazando «<YourStrong!Passw0rd>» por la antigua contraseña y «<YourNewStrong!Passw0rd>» por la nueva siguiendo los mismo requerimientos antes mencionados.
Por ejemplo si la nueva contraseña fuera: Deepines@2018
sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \-S localhost -U SA -P 'deepineS@2018' \-Q 'ALTER LOGIN SA WITH PASSWORD="Deepines@2018"'
PASO 5:
Conectando con la base de datos:
sudo docker exec -it sql1 "bash"
ahora colocamos el siguiente comando:
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA
y luego ingresar su contraseña.
Si todos los pasos están correctos debería salir 1>
PASO 6:
Creamos una tabla para comprobar el funcionamiento en este caso la tabla se llama TestDB
CREATE DATABASE TestDB
Luego mostraremos todas las bases de datos del servidor
SELECT Name from sys.Databases
Para ejecutar los comando anteriores escribimos lo siguiente
GO
Para cerrar sesión solo escribimos QUIT
, para cerrar el contenedor, escribimos EXIT
Espero sea de utilidad este post a los que trabajan con bases de datos en especial SQL Server de Microsoft pero no desean dejar Linux, no está demás recordar que al haber instalado mediante docker ésta instalación es posible realizarla en cualquier distribución que soporte dichos contenedores, cualquier duda no duden en comentarlo, también pueden seguirnos en las redes sociales que se encuentran al pie de éste post.
Muy detallado, gracias ProgramacionJS
Excelente Joe 😎
Not work…
sudo docker pull microsoft/mssql-server-linux:2017-latest
sudo: docker: command not found
docker and deepins installed
now is
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
fix that
Unable to find image ‘microsoft/mssql-server-linux:2017-latest’ locally
docker: Error response from daemon: pull access denied for microsoft/mssql-server-linux, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied.
See ‘docker run –help’.