
sqlservr-setup installer and the SLES 12 repository. SQL Server for Linux reached GA that same year. In 2026, the current product is SQL Server 2025 (17.x) — and Microsoft removed SLES from the matrix. OpenSUSE Leap was never an official platform. The supported path on Leap is the container; native installation stays on SLES 15 (SQL Server 2022) or Ubuntu/RHEL (2025).In 2017, Microsoft had just released SQL Server on Linux. The shortcut at the time was to paste the .repo from SLES 12 into Leap 42.2 and run setup. Nine years later, the engine is the same — T-SQL, port 1433, user sa — but the platform landscape has changed. Anyone still on Leap who wants SQL Server does not install the RPM package on the host: they run the container.
What changed since the CTP
SQL Server 2025 (17.x, GA in November 2025, CU 8 in August 2026) runs in production on these platforms, always on x86-64, using XFS or ext4, with a minimum of 2 GB of RAM:
- RHEL 9 and 10
- Ubuntu 22.04 and 24.04 (24.04 starting with CU 1)
- Docker Engine 1.8+ (Ubuntu-based image, Intel/AMD hosts only — no Rosetta, no QEMU)
SLES was dropped from 2025. Installations of 2017/2019/2022 on SLES remain supported until that version's end of life. SQL Server 2022 still installs on SLES 15 SP6. OpenSUSE Leap, Tumbleweed, and Btrfs were never in the matrix: Leap uses Btrfs by default, and Btrfs is not supported by the engine.
The configuration command is no longer sqlservr-setup. Since GA, it has been /opt/mssql/bin/mssql-conf setup. The command-line tools are in the package mssql-tools18 in /opt/mssql-tools18/bin — sqlcmd 18 encrypts the connection by default; if the server certificate is self-signed, use -No (encryption optional).
Path 1 — Docker 2025 on openSUSE (what makes sense today)
It is the only supported way to run SQL Server 2025 on Leap. The image is mcr.microsoft.com/mssql/server:2025-latest. The host can be Leap, Tumbleweed, Ubuntu, or anything else — as long as it is x86-64 with Docker (or Podman). If Docker is not on Leap yet, the Docker course covers the basics; on recent Leap:
sudo zypper in docker
sudo systemctl enable --now docker
sudo usermod -aG docker "$USER" # relogue depois
Start the container. The old variable SA_PASSWORD is deprecated — use MSSQL_SA_PASSWORD. The password must have at least 8 characters and three of the four classes (uppercase, lowercase, digit, symbol); otherwise the container starts and dies, and the reason only appears in 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
The volume sql1data keeps the data in /var/opt/mssql. Without a volume, docker rm deletes the database. The image already includes sqlcmd 18:
docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd
-S localhost -U sa -P 'SuaSenhaForte_123' -No
Path 2 — native on Ubuntu 24.04 (SQL Server 2025)
Anyone who can choose the OS and wants the engine under systemd, without a container, should use Ubuntu 24.04 (or 22.04) / RHEL 9–10. The mssql-server package, interactive setup, same password policy.
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
Tools on 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
Path 3 — native on SLES 15 (SQL Server 2022)
SLES 15 SP6 is still the home of the RPM. SQL Server 2022, not 2025. Enable the Desktop Applications and Development Tools modules in the SUSE Customer Center first — the package depends on them. Use XFS or ext4 for the disk.
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
Tools:
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
Firewall, if connecting from outside:
sudo zypper install -y firewalld
sudo systemctl start firewalld
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
Pasting the .repo from SLES into Leap still works sometimes — and remains the same unofficial shortcut from 2017. It is not Microsoft support. Btrfs on Leap's root is the first obstacle.
sqlcmd and the first query
Applies to both the container and the native package. The -No option prevents rejection of a self-signed certificate by 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
Good practices after the first login: create your own login, add it to sysadmin and disable sa. The password for sa in Docker appears in ps and in the container's environment — change it immediately in production.
How it worked in 2017 (Leap 42.2 / CTP 2.0)
The original gist, on Leap 42.2, called for 3,25 GB of RAM, XFS/ext4, the SLES 12 repository, and the installer that no longer exists. It remains here as a record — do not run this on a current Leap installation.
## 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
The walkthrough from that time is in the gist.
References
- SQL Server 2025 on Linux release notes — platform matrix and the removal of SLES
- Quickstart: container 2025
- Quickstart: Ubuntu 24.04 / 2025
- Quickstart: SLES 15 / SQL Server 2022
- Free Docker course
- Vaultwarden on Docker — another self-hosted service using the same volume + reverse proxy approach
- Samba 4 on OpenSUSE
SQL Server on Linux stopped being a novelty in 2017. What really changed is the distro list: Leap was left out, SLES stopped at 2022, and the honest shortcut for anyone sticking with the gecko is the 2025 container.