Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:Program SQL Server w systemie Linux
Podsystem Windows dla systemu Linux (WSL) to funkcja w systemie Windows, która umożliwia uruchamianie środowiska systemu Linux bezpośrednio na maszynie z systemem Windows bez konieczności uruchamiania maszyny wirtualnej lub podwójnego rozruchu. Środowisko WSL zapewnia bezproblemowe i wydajne środowisko dla deweloperów, którzy chcą jednocześnie korzystać zarówno z systemów Windows, jak i Linux. Aby uzyskać więcej informacji, zobacz Co to jest podsystem Windows dla systemu Linux?
Program SQL Server w programie WSL jest przeznaczony tylko do użytku programistycznego
Program SQL Server w programie WSL 2 jest przeznaczony tylko do celów programistycznych i nie jest obsługiwany w przypadku obciążeń produkcyjnych. Zalecamy uruchomienie programu SQL Server w środowiskach WSL na jednej z obsługiwanych platform zgodnie z opisem dla wersji programu SQL Server, którą zamierzasz uruchomić.
W przypadku wszelkich problemów związanych z pomocą techniczną możesz uzyskać pomoc techniczną od firmy Microsoft.
Wprowadzenie do programu SQL Server w programie WSL 2
Istnieją dwa sposoby rozpoczynania pracy z programem SQL Server w programie WSL 2:
Zainstaluj program SQL Server jako usługę
systemd, którą można zarządzać za pomocąsystemctlpoleceń. Upewnij się, że włączaszsystemdw WSL. Aby uzyskać więcej informacji, zobacz Jak włączyć system.Wdrażanie kontenerów programu SQL Server w programie WSL. W przypadku tej opcji należy zainstalować silnik kontenerów Linux w programie WSL, takim jak Docker lub Podman, a następnie wdrożyć kontenery SQL Server.
Wymagania wstępne
Zainstaluj program WSL 2. Upewnij się, że korzystasz z systemu Windows 10 w wersji 2004 lub nowszej (kompilacja 19041 lub nowsza) lub Windows 11. Aby zainstalować program WSL, otwórz wiersz polecenia programu PowerShell lub systemu Windows w trybie administratora i postępuj zgodnie z instrukcjami w następnej sekcji.
Aby uzyskać szczegółowe instrukcje, zobacz How to install Linux on Windows with WSL (Jak zainstalować system Linux w systemie Windows przy użyciu programu WSL). Aby uzyskać informacje na temat konfigurowania środowiska WSL na potrzeby programowania, zobacz Konfigurowanie środowiska deweloperskiego WSL.
Instalowanie programu SQL Server w programie WSL
W tej sekcji opisano kroki konfigurowania dystrybucji systemu Linux w programie WSL oraz sposób instalowania programu SQL Server w tej dystrybucji systemu Linux.
Wybieranie dystrybucji systemu Linux
Listę wszystkich prawidłowych dystrybucji, które można zainstalować w programie WSL, można wyświetlić za pomocą następującego polecenia:
wsl -l -o
Dane wyjściowe wyglądają podobnie do poniższego przykładu.
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
Ubuntu-24.04 Ubuntu 24.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed openSUSE Tumbleweed
W tym przewodniku szybkiego startu zainstaluj system Ubuntu 22.04, a następnie zainstaluj program SQL Server 2022 w tej dystrybucji.
Aby zainstalować system Ubuntu 22.04, uruchom następujące polecenie. Zanotuj konto użytkownika i hasło systemu UNIX. W tym przykładzie użyj wsluser nazwy użytkownika.
wsl --install -d Ubuntu-22.04
Powinny zostać wyświetlone dane wyjściowe podobne do poniższego przykładu. Na końcu powinno zostać wyświetlone, że zalogowano się do powłoki bash systemu Ubuntu 22.04.
Installing: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS has been installed.
Launching Ubuntu 22.04 LTS...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: wsluser
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Tue Dec 3 00:32:14 IST 2024
System load: 0.33 Processes: 32
Usage of /: 0.1% of 1006.85GB Users logged in: 0
Memory usage: 2% IPv4 address for eth0: 10.18.123.249
Swap usage: 0%
This message is shown once a day. To disable it please create the
/home/wsluser/.hushlogin file.
Instalowanie programu SQL Server
Po zalogowaniu się do powłoki bash systemu Ubuntu 22.04 możesz wykonać kroki opisane w przewodniku Szybki Start: Instalowanie programu SQL Server i tworzenie bazy danych w systemie Ubuntu, aby zainstalować program SQL Server 2022.
Należy również zainstalować narzędzia wiersza polecenia programu SQL Server .
Uzyskiwanie adresu IP
Aby zidentyfikować adres IP do nawiązania połączenia przy użyciu programu SQL Server Management Studio (SSMS), uruchom ifconfig polecenie w następujący sposób:
ifconfig
Powinny zostać wyświetlone dane wyjściowe podobne do poniższego przykładu.
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.19.50.241 netmask 255.255.240.0 broadcast 10.19.63.255
inet6 fe80::215:5dff:fe76:c05d prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:76:c0:5d txqueuelen 1000 (Ethernet)
RX packets 2146 bytes 1452448 (1.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1905 bytes 345288 (345.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2039 bytes 4144340 (4.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2039 bytes 4144340 (4.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Wdrażanie kontenerów programu SQL Server w programie WSL
Aby wdrożyć kontenery w programie WSL, należy najpierw zainstalować silnik do kontenerów Linuksa, taki jak Docker. Aby uzyskać więcej informacji, zobacz Rozpoczęcie pracy z zdalnymi kontenerami Docker na WSL. Po zainstalowaniu silnika Docker wdróż obraz kontenera SQL Server następująco.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-d mcr.microsoft.com/mssql/server:2022-latest
W przypadku wdrażania kontenera dla SQL Server 2025 (17.x) lub nowszej wersji należy użyć MSSQL_PID=DeveloperStandard dla edycji Standard Developer oraz MSSQL_PID=Developer dla edycji Enterprise Developer.
Uwaga / Notatka
Hasło powinno być zgodne z domyślnymi zasadami haseł programu SQL Server. Domyślnie hasło musi mieć długość co najmniej ośmiu znaków i zawierać znaki z trzech z następujących czterech zestawów: wielkie litery, małe litery, cyfry podstawowe-10 i symbole. Hasła mogą mieć długość maksymalnie 128 znaków. Używaj haseł, które są tak długie i złożone, jak to możliwe.
Dodawanie magazynu trwałego za pomocą protokołu WSL dla kontenerów programu SQL Server
Woluminy danych można utworzyć zgodnie z opisem w temacie Instalowanie katalogu hosta jako woluminu danych.
Na przykład uruchom następujące polecenie, aby skonfigurować wolumin o nazwie sql_volume znajdujący się w /var/opt/mssql/.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-v sql_volume:/var/opt/mssql/ \
-d mcr.microsoft.com/mssql/server:2022-latest
W przypadku wdrażania kontenera dla SQL Server 2025 (17.x) lub nowszej wersji należy użyć MSSQL_PID=DeveloperStandard dla edycji Standard Developer oraz MSSQL_PID=Developer dla edycji Enterprise Developer.
Nawet jeśli uruchomisz wsl --terminate polecenie, dane nie zostaną utracone. Po ponownym uruchomieniu WSL i wykonaniu polecenia docker run w celu wdrożenia przy użyciu woluminu sql_volume nadal zawiera wszystkie dane bez zmian.
Jeśli chcesz usunąć utrwalony wolumin, upewnij się, że kontener używający woluminu został zatrzymany i usunięty, a następnie uruchom następujące polecenie.
docker volume rm sql_volume
Uwagi
W celach programistycznych należy skonfigurować większość funkcji obsługiwanych przez program SQL Server w systemie Linux, z wyjątkiem funkcji ciągłości działania, które są zależne od stosów klastrowania. Te funkcje, takie jak Pacemaker lub HPE Serviceguard, nie są obsługiwane w systemie WSL.
Aby uzyskać pełną listę nieobsługiwanych funkcji programu SQL Server w systemie Linux, zobacz Wersje i obsługiwane funkcje programu SQL Server 2022 w systemie Linux.
Nawiązywanie połączenia lokalnego
W poniższych krokach użyj polecenia sqlcmd , aby lokalnie nawiązać połączenie z nowym wystąpieniem programu SQL Server.
Ostrzeżenie
Hasło powinno być zgodne z domyślnymi zasadami haseł programu SQL Server. Domyślnie hasło musi mieć długość co najmniej ośmiu znaków i zawierać znaki z trzech z następujących czterech zestawów: wielkie litery, małe litery, cyfry podstawowe-10 i symbole. Hasła mogą mieć długość maksymalnie 128 znaków. Używaj haseł, które są tak długie i złożone, jak to możliwe.
Uruchom polecenie sqlcmd z parametrami dla nazwy programu SQL Server (
-S), nazwy użytkownika (-U) i hasła (-P). W tym samouczku połączysz się lokalnie, więc nazwa serwera tolocalhost. Nazwa użytkownika tosa, a hasło to to, które podałeś dla kontasapodczas konfiguracji.sqlcmd -S localhost -U sa -P '<password>'Uwaga / Notatka
Nowsze wersje sqlcmd są domyślnie bezpieczne. Aby uzyskać więcej informacji na temat szyfrowania połączeń, zobacz
sqlcmd utility for Windows iConnecting with sqlcmd for Linux and macOS (Nawiązywanie połączenia za pomocą sqlcmd dla systemów Linux i macOS). Jeśli połączenie nie powiedzie się, możesz dodać opcję-No, aby sqlcmd określić, że szyfrowanie jest opcjonalne, a nie obowiązkowe.Możesz pominąć hasło w wierszu polecenia, aby wyświetlić monit o jego wprowadzenie.
Jeśli później zdecydujesz się połączyć zdalnie, określ nazwę komputera lub adres IP dla parametru
-Si upewnij się, że port 1433 jest otwarty w zaporze.W przypadku powodzenia należy przejść do wiersza polecenia sqlcmd :
1>.Jeśli wystąpi błąd połączenia, najpierw spróbuj zdiagnozować problem z komunikatu o błędzie. Następnie zapoznaj się z zaleceniami dotyczącymi rozwiązywania problemów z połączeniem .
Tworzenie i wykonywanie zapytań dotyczących danych
W poniższych sekcjach przedstawiono sposób tworzenia nowej bazy danych, dodawania danych i uruchamiania prostego zapytania przy użyciu narzędzia sqlcmd .
Aby uzyskać więcej informacji na temat pisania instrukcji i zapytań Transact-SQL, zobacz Samouczek: pisanie instrukcji Transact-SQL.
Tworzenie nowej bazy danych
Poniższe kroki umożliwiają utworzenie nowej bazy danych o nazwie TestDB.
W wierszu polecenia sqlcmd wklej następujące polecenie języka Transact-SQL, aby utworzyć testową bazę danych:
CREATE DATABASE TestDB;W następnym wierszu napisz zapytanie, aby zwrócić nazwę wszystkich baz danych na serwerze:
SELECT Name FROM sys.databases;Poprzednie dwa polecenia nie są wykonywane natychmiast. Aby wykonać poprzednie polecenia, musisz wpisać
GOnowy wiersz:GO
Wstawianie danych
Następnie utwórz nową tabelę , dbo.Inventoryi wstaw dwa nowe wiersze.
W wierszu polecenia sqlcmd przełącz kontekst do nowej
TestDBbazy danych:USE TestDB;Utwórz nową tabelę o nazwie
dbo.Inventory:CREATE TABLE dbo.Inventory ( id INT, name NVARCHAR (50), quantity INT, PRIMARY KEY (id) );Wstaw dane do nowej tabeli:
INSERT INTO dbo.Inventory VALUES (1, 'banana', 150); INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);Wpisz polecenie
GO, aby wykonać poprzednie polecenia:GO
Wybieranie danych
Teraz uruchom zapytanie, aby zwrócić dane z dbo.Inventory tabeli.
W wierszu polecenia sqlcmd wprowadź zapytanie zwracające wiersze z
dbo.Inventorytabeli, w której ilość jest większa niż 152:SELECT * FROM dbo.Inventory WHERE quantity > 152;Wykonaj polecenie:
GO
Zamknij wiersz polecenia sqlcmd
Aby zakończyć sesję sqlcmd , wpisz QUIT:
QUIT
Najlepsze rozwiązania dotyczące wydajności
Po zainstalowaniu programu SQL Server w systemie Linux zapoznaj się z najlepszymi rozwiązaniami dotyczącymi konfigurowania systemów Linux i PROGRAMU SQL Server w celu zwiększenia wydajności scenariuszy produkcyjnych. Aby uzyskać więcej informacji, zobacz Performance best practices and configuration guidelines for SQL Server on Linux (Najlepsze rozwiązania dotyczące wydajności i wytyczne dotyczące konfiguracji programu SQL Server w systemie Linux).
Międzyplatformowe narzędzia do obsługi danych
Oprócz narzędzia sqlcmd do zarządzania programem SQL Server można użyć następujących narzędzi międzyplatformowych:
| Narzędzie | Opis |
|---|---|
| Visual Studio Code | Wieloplatformowy edytor kodu graficznego interfejsu użytkownika, który uruchamia instrukcje Transact-SQL z rozszerzeniem MSSQL. |
| PowerShell | Wieloplatformowe narzędzie automatyzacji i konfiguracji oparte na poleceniach cmdlet. |
| mssql-cli | Międzyplatformowy interfejs wiersza polecenia do uruchamiania poleceń Transact-SQL. |
Nawiązywanie połączenia z systemu Windows
Narzędzia programu SQL Server w systemie Windows łączą się z wystąpieniami programu SQL Server w systemie Linux w taki sam sposób, jak z dowolnym zdalnym wystąpieniem programu SQL Server.
Jeśli masz maszynę z systemem Windows, która może połączyć się z maszyną z systemem Linux, spróbuj wykonać te same kroki w tym artykule z poziomu wiersza polecenia systemu Windows z uruchomionym poleceniem sqlcmd. Należy użyć docelowej nazwy komputera z systemem Linux lub adresu IP, a nie localhost, i upewnij się, że port TCP 1433 jest otwarty na maszynie z programem SQL Server. Jeśli masz problemy z nawiązywaniem połączenia z systemem Windows, zobacz zalecenia dotyczące rozwiązywania problemów z połączeniem.
Inne narzędzia uruchamiane w systemie Windows, ale nawiązują połączenie z programem SQL Server w systemie Linux, zobacz:
Inne scenariusze wdrażania
W przypadku innych scenariuszy instalacji zobacz następujące zasoby:
- Uaktualnianie: dowiedz się, jak uaktualnić istniejącą instalację programu SQL Server w systemie Linux
- Odinstalowywanie: Odinstalowywanie programu SQL Server w systemie Linux
- Instalacja nienadzorowana: dowiedz się, jak utworzyć skrypt instalacji bez monitów
- Instalowanie w trybie offline: dowiedz się, jak ręcznie pobrać pakiety na potrzeby instalacji w trybie offline
Aby uzyskać odpowiedzi na często zadawane pytania, zobacz często zadawane pytania dotyczące programu SQL Server w systemie Linux.
Treści powiązane
Współtworzenie dokumentacji SQL
Czy wiesz, że możesz samodzielnie edytować zawartość SQL? Jeśli to zrobisz, nie tylko pomożesz ulepszyć naszą dokumentację, ale także zostaniesz uznany za współautora strony.
Aby uzyskać więcej informacji, zobacz Edytowanie dokumentacji środowiska Microsoft Learn.