
sqlservr-setup y el repositorio de SLES 12. SQL Server para Linux salió en GA el mismo año. En 2026 el producto actual es el SQL Server 2025 (17.x) — y Microsoft retiró el SLES de la matriz. OpenSUSE Leap nunca fue plataforma oficial. La vía soportada en Leap es el contenedor; el nativo se queda en SLES 15 (SQL Server 2022) o en Ubuntu/RHEL (2025).En 2017 Microsoft acababa de lanzar el SQL Server en Linux. El atajo de la época era pegar el .repo del SLES 12 en Leap 42.2 y ejecutar el setup. Nueve años después el motor es el mismo — T-SQL, puerto 1433, usuario sa — pero el mapa de plataformas ha cambiado. Quien todavía tiene Leap y quiere SQL Server no instala el paquete RPM en el host: levanta el contenedor.
Qué cambió desde el CTP
El SQL Server 2025 (17.x, GA en noviembre de 2025, CU 8 en agosto de 2026) corre en producción en estas plataformas, siempre en x86-64, sistema de archivos XFS o ext4, mínimo de 2 GB de RAM:
- RHEL 9 e 10
- Ubuntu 22.04 e 24.04 (24.04 a partir de CU 1)
- Docker Engine 1.8+ (imagen basada en Ubuntu, solo host Intel/AMD — sin Rosetta, sin QEMU)
SLES salió de la 2025. Las instalaciones de 2017/2019/2022 en SLES siguen siendo compatibles hasta el final de la vida útil de esa versión. SQL Server 2022 todavía se instala en SLES 15 SP6. OpenSUSE Leap, Tumbleweed y Btrfs nunca entraron en la matriz: Leap usa Btrfs por defecto, y Btrfs no es compatible con el motor.
El comando de configuración dejó de ser sqlservr-setup. Desde la GA es /opt/mssql/bin/mssql-conf setup. Las herramientas de línea de comando son el paquete mssql-tools18 en /opt/mssql-tools18/bin — el sqlcmd 18 cifra la conexión por defecto; si el certificado del servidor es autofirmado, entra el -No (encryption optional).
Vía 1 — Docker 2025 en openSUSE (lo que tiene sentido hoy)
Es la única forma compatible de tener SQL Server 2025 en Leap. La imagen es mcr.microsoft.com/mssql/server:2025-latest. El host puede ser Leap, Tumbleweed, Ubuntu, lo que sea — siempre que sea x86-64 con Docker (o Podman). Si Docker aún no está en Leap, la curso de Docker cubre lo básico; en Leap reciente:
sudo zypper in docker
sudo systemctl enable --now docker
sudo usermod -aG docker "$USER" # relogue depois
Sube el contenedor. La variable antigua SA_PASSWORD está obsoleta: usa MSSQL_SA_PASSWORD. La contraseña debe tener al menos 8 caracteres y tres de las cuatro clases (mayúscula, minúscula, dígito, símbolo); si no, el contenedor se levanta y muere, y el motivo solo aparece en docker logs.
docker pull mcr.microsoft.com/mssql/server:2025-latest
docker run -e "ACCEPT_EULA=Y"
-e "MSSQL_SA_PASSWORD=SuaSenhaForte_123"
-p 1433:1433 --name sql1 --hostname sql1
-v sql1data:/var/opt/mssql
-d mcr.microsoft.com/mssql/server:2025-latest
docker ps
# STATUS precisa ser Up. Se for Exited:
docker logs sql1
El volumen sql1data mantiene los datos en /var/opt/mssql. Sin volumen, docker rm borra la base de datos. La imagen ya incluye el sqlcmd 18:
docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd
-S localhost -U sa -P 'SuaSenhaForte_123' -No
Vía 2 — nativo en Ubuntu 24.04 (SQL Server 2025)
Quien pueda elegir el SO y quiera el motor en systemd, sin contenedor, va con Ubuntu 24.04 (o 22.04) / RHEL 9–10. Paquete mssql-server, configuración interactiva, misma política de contraseña.
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc
| sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
curl -fsSL https://packages.microsoft.com/config/ubuntu/24.04/mssql-server-2025.list
| sudo tee /etc/apt/sources.list.d/mssql-server-2025.list
sudo apt-get update
sudo apt-get install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
systemctl status mssql-server --no-pager
Herramientas en Ubuntu 24.04:
curl -sSL -O https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y mssql-tools18 unixodbc-dev
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
Vía 3 — nativo en SLES 15 (SQL Server 2022)
SLES 15 SP6 sigue siendo el hogar de RPM. SQL Server 2022, no 2025. Activa los módulos Desktop Applications y Development Tools en el SUSE Customer Center antes: el paquete depende de ellos. Disco en XFS o ext4.
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/15/mssql-server-2022.repo
sudo zypper --gpg-auto-import-keys refresh
sudo zypper install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
systemctl status mssql-server
Herramientas:
sudo zypper ar https://packages.microsoft.com/config/sles/15/prod.repo
sudo zypper install -y mssql-tools18 unixODBC-devel glibc-locale-base
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
Cortafuegos, si vas a conectarte desde fuera:
sudo zypper install -y firewalld
sudo systemctl start firewalld
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
Pegar el .repo de SLES en Leap a veces todavía funciona — y sigue siendo el mismo atajo extraoficial de 2017. No es soporte de Microsoft. Btrfs en la raíz de Leap es el primer obstáculo.
sqlcmd y la primera consulta
Vale para el contenedor y para el paquete nativo. El -No evita el rechazo del certificado autofirmado del sqlcmd 18.
sqlcmd -S localhost -U sa -P 'SuaSenhaForte_123' -No
CREATE DATABASE TestDB;
SELECT Name FROM sys.databases;
GO
USE TestDB;
CREATE TABLE dbo.Inventory (
id INT,
name NVARCHAR(50),
quantity INT,
PRIMARY KEY (id)
);
INSERT INTO dbo.Inventory VALUES (1, 'banana', 150);
INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);
GO
SELECT * FROM dbo.Inventory WHERE quantity > 152;
GO
QUIT
Buenas prácticas después del primer inicio de sesión: crear tu propio login, añadir en sysadmin y deshabilitar el sa. La contraseña de sa en Docker aparece en ps y en el env del contenedor — en producción cámbiala enseguida.
Como era en 2017 (Leap 42.2 / CTP 2.0)
El gist original, en Leap 42.2, pedía 3,25 GB de RAM, XFS/ext4, repositorio de SLES 12 y el instalador que ya no existe. Queda aquí como registro — no lo ejecutes en un Leap actual.
## OpenSUSE 42.2 64 bits, root — SQL Server vNext CTP 2.0
zypper ar -fc https://packages.microsoft.com/config/sles/12/mssql-server.repo
zypper --gpg-auto-import-keys refresh
zypper in mssql-server
/opt/mssql/bin/sqlservr-setup
zypper ar -fc https://packages.microsoft.com/config/sles/12/prod.repo
zypper --gpg-auto-import-keys refresh
zypper in mssql-tools unixODBC-devel
ln -sfn /opt/mssql-tools/bin/sqlcmd /usr/local/bin/sqlcmd
ln -sfn /opt/mssql-tools/bin/bcp /usr/local/bin/bcp
El paso a paso de la época está en el gist.
Referencias
- Notas de la versión de SQL Server 2025 en Linux — matriz de plataformas y la salida de SLES
- Quickstart: contenedor 2025
- Quickstart: Ubuntu 24.04 / 2025
- Quickstart: SLES 15 / SQL Server 2022
- Curso de Docker gratis
- Vaultwarden en Docker — otro servicio self-hosted en el mismo estilo de volumen + reverse proxy
- Samba 4 en OpenSUSE
SQL Server en Linux dejó de ser novedad en 2017. Lo que ha cambiado de verdad es la lista de distros: Leap se quedó fuera, SLES se detuvo en 2022, y el atajo honesto para quien insiste en el gecko es el contenedor 2025.