SQL Server
Paso 1: Instalación de SQL Server 2019
-
Descargue la clave pública, conviértala de ASCII a formato GPG y escríbala en la ubicación requerida:
-
Descargue y registre manualmente el repositorio de Ubuntu de SQL Server:
-
Ejecute los siguientes comandos para instalar SQL Server:
-
Una vez finalizada la instalación del paquete, ejecute y siga las indicaciones para establecer la contraseña de SA y elija su edición. Le recordamos que las siguientes ediciones de SQL Server tienen licencia gratuita: Evaluation, Developer y Express.
mssql-conf setup
Paso 2: Configuración del servicio

Y finalmente
Una vez realizada la configuración, compruebe que el servicio se está ejecutando:
Nota: Hacer lo mismo en la instancia. Crear regla para permitir el puerto 1433
Instalación de las herramientas de línea de comandos de SQL Server
Siga estos pasos para instalar mssql-tools18 en Ubuntu.
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
Actualice la lista de fuentes y ejecute el comando de instalación con el paquete de desarrollador unixODBC.
-
Opcional: Agregue a su variable de entorno en un shell bash.
/opt/mssql-tools18/bin/PATHPara que sqlcmd y bcp sean accesibles desde el shell bash para las sesiones de inicio de sesión, modifique su en el archivo con el siguiente comando:
PATH~/.bash_profilePara que sqlcmd y bcp sean accesibles desde el shell bash para sesiones interactivas/sin inicio de sesión, modifique el en el archivo con el siguiente comando:
PATH~/.bashrc
Conéctese localmente
En los pasos siguientes se usa sqlcmd para conectarse localmente a la nueva instancia de SQL Server.
-
Ejecute sqlcmd con parámetros para el nombre de SQL Server (), el nombre de usuario () y la contraseña (). En este tutorial, se está conectando localmente, por lo que el nombre del servidor es . El nombre de usuario y la contraseña son los que proporcionó para la cuenta de SA durante la configuración.
-S-U-Plocalhostsa
Instalacion con Docker
- Instalar Docker (si aún no lo tienes)
Verifica que Docker está funcionando:
2. Descargar e iniciar un contenedor MySQL
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=MiNiCo57**' \
-p 1433:1433 \
-v /mnt/d/academia/bd:/var/opt/mssql/backups \
--name sqlserver-container \
-d mcr.microsoft.com/mssql/server:2022-latest
3. Verificar que el contenedor esté corriendo
Si el contenedor está corriendo, verás algo como:
Si está en ejecución, verás algo como:
Si está en ejecución, verás una salida similar a:
CONTAINER ID IMAGE STATUS PORTS NAMES abcdef123456 mcr.microsoft.com/mssql/server:2022-latest Up X minutes 0.0.0.0:1433->1433/tcp sqlserver-container
Instalar mssql-tools dentro del contenedor
# 1. Actualiza e instala paquetes requeridos
sudo apt update && sudo apt install -y curl apt-transport-https gnupg
# 2. Agrega la clave GPG de Microsoft (con apt-key obsoleto pero funcional)
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
# 3. Agrega el repositorio de Microsoft SQL Server
echo "deb [arch=amd64,arm64] https://packages.microsoft.com/ubuntu/22.04/prod jammy main" | sudo tee /etc/apt/sources.list.d/mssql-release.list
# 4. Actualiza los repositorios con la nueva fuente
sudo apt update
# 5. Acepta la licencia de Microsoft e instala mssql-tools y unixODBC
sudo ACCEPT_EULA=Y apt install -y mssql-tools unixodbc-dev
# 6. Agrega mssql-tools al PATH de tu usuario
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
# 7. Recarga la configuración del shell actual
source ~/.bashrc
Ahora puedes ejecutar sqlcmd dentro del contenedor:
Remover el Contenedor
Configuración en conexión con DBeaver


Para crear una base de datos, acceda a las siguientes opciones:
Botón derecho encima de DataBases

Copias de Respaldo (Backup)
Verificar que al momento de crer el contenedor en Docker tenga la opcion:
-v /mnt/d/academia/bd:/var/opt/mssql/backups
En caso que no tenga dicha ocpion, debe eliminar el contenedor y crearlo nuevamente segun las indicaciones en esta guia - parte superior.\
-
/mnt/d/academia/bd Esta carpeta se debe crear manualmente en su disco duro, en mi caso utilice la unidad d y las carpeta academia/bd. use la que considere -
/var/opt/mssql/backups esta carpeta si debe dejarla igual
Existen diferentes opciones:
Backup con MS SQL Server Management





Luego verificar el archivo en la carpeta que definio manualmente en docker.
Backup con Dbeaver


Luego verificar el archivo en la carpeta que definio manualmente en docker.
Cuando el backup no se genera en el mismo equipo
sudo docker cp almacen_2025_iisem_node.bak sqlserver-container:/var/opt/mssql/backups/
Luego entrar y verificar archivos
docker exec -it mysql-server sh
Backup
Script WSL/Linux
CONTAINER=sqlserver-container # nombre del contenedor (p.ej. "sqlserver" o "mssql")
SA_PASSWORD='MiNiCo57**'
DB=almacen_2025_iisem_node
STAMP=$(date +%F) # 2025-10-01
# 1) Asegura la carpeta de backups dentro del contenedor
docker exec "$CONTAINER" bash -lc "mkdir -p /var/opt/mssql/backups"
# 2) Ejecuta el BACKUP dentro del contenedor
docker exec "$CONTAINER" bash -lc "
/opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P $SA_PASSWORD -C -Q \"
BACKUP DATABASE [$DB]
TO DISK = N'/var/opt/mssql/backups/${DB}_${STAMP}.bak'
WITH FORMAT, INIT, NAME = 'Backup completo desde DBeaver';
\"
"
# 3) (Opcional) Copia el .bak al host
CID=$(docker inspect -f '{{.Id}}' "$CONTAINER")
docker cp ${CID}:/var/opt/mssql/backups/${DB}_${STAMP}.bak .
Script Dbeaver
BACKUP DATABASE almacen_2025_iisem_node
TO DISK = N'/var/opt/mssql/backups/almacen_2025_iisem_node.bak'
WITH FORMAT, INIT, NAME = 'Backup completo desde DBeaver';
Restaurar WSL-Linux Terminal
sudo docker exec -i sqlserver-container bash -lc "/opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P 'MiNiCo57**' -C -d master -Q \"ALTER DATABASE [almacen_2025_iisem_node] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; RESTORE DATABASE [almacen_2025_iisem_node] FROM DISK=N'/var/opt/mssql/backups/almacen_2025_iisem_node.bak' WITH REPLACE, RECOVERY, STATS=10; ALTER DATABASE [almacen_2025_iisem_node] SET MULTI_USER;\""