Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
si applica a:SQL Server - Linux
Sottosistema Windows per Linux (WSL) è una funzionalità di Windows che consente di eseguire un ambiente Linux direttamente nel computer Windows, senza la necessità di una macchina virtuale o di un doppio avvio. WSL offre un'esperienza facile e produttiva per gli sviluppatori che vogliono usare sia Windows che Linux contemporaneamente. Per altre informazioni, vedere Che cos'è il sottosistema Windows per Linux?
SQL Server in WSL è destinato solo all'uso dello sviluppo
SQL Server in WSL 2 è destinato solo a scopi di sviluppo ed è non supportato per i carichi di lavoro di produzione. È consigliabile eseguire SQL Server in ambienti WSL in una delle piattaforme supportate come documentato, per la versione di SQL Server che si intende eseguire.
Per eventuali problemi correlati al supporto, è possibile ottenere supporto da Microsoft.
Introduzione a SQL Server in WSL 2
Esistono due modi per iniziare a usare SQL Server in WSL 2:
Installare SQL Server come servizio
systemd, che può essere gestito usando i comandisystemctl. Assicurarsi di abilitaresystemdin WSL. Per altre informazioni, vedere come abilitare systemd.Distribuire contenitori di SQL Server in WSL. Per questa opzione, è necessario installare un motore di contenitori Linux in WSL, ad esempio Docker o Podman, e quindi distribuire i contenitori di SQL Server.
Prerequisiti
Installare WSL 2. Assicurarsi di eseguire Windows 10 versione 2004 o successiva (Build 19041 e versioni successive) o Windows 11. Per installare WSL, aprire un prompt dei comandi di PowerShell o Windows in modalità amministratore e seguire le istruzioni nella sezione successiva.
Per istruzioni dettagliate, vedere Come installare Linux in Windows con WSL. Per informazioni sulla configurazione dell'ambiente WSL per lo sviluppo, vedere Configurare un ambiente di sviluppo WSL.
Installare SQL Server in WSL
Questa sezione descrive i passaggi per configurare una distribuzione Linux in WSL e come installare SQL Server in tale distribuzione Linux.
Scegliere la distribuzione linux
È possibile elencare tutte le distribuzioni valide che possono essere installate in WSL usando il comando seguente:
wsl -l -o
L'output è simile all'esempio seguente.
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
Per questa guida introduttiva, installare Ubuntu 22.04 e quindi installare SQL Server 2022 in tale distribuzione.
Per installare Ubuntu 22.04, eseguire il comando seguente. Prendere nota dell'account utente e della password UNIX. In questo esempio usare wsluser come nome utente.
wsl --install -d Ubuntu-22.04
L'output dovrebbe essere simile all'esempio seguente. Alla fine, dovrebbe essere visualizzato che si è connessi alla shell Bash di 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.
Installare SQL Server
Dopo aver eseguito l'accesso alla shell Bash di Ubuntu 22.04, è possibile seguire i passaggi descritti in Avvio rapido: Installare SQL Server e creare un database in Ubuntu per installare SQL Server 2022.
Dovresti installare anche gli strumenti da riga di comando di SQL Server.
Ottenere l'indirizzo IP
Per identificare l'indirizzo IP a cui connettersi tramite SQL Server Management Studio (SSMS), eseguire il comando ifconfig come indicato di seguito:
ifconfig
L'output dovrebbe essere simile all'esempio seguente.
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
Distribuire contenitori di SQL Server in WSL
Per distribuire i contenitori in WSL, è prima necessario installare un motore contenitore Linux, ad esempio Docker. Per altre informazioni, vedere Introduzione ai contenitori remoti Docker in WSL. Dopo aver installato il motore Docker, distribuire l'immagine del contenitore di SQL Server come indicato di seguito.
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
Quando si distribuisce un contenitore per SQL Server 2025 (17.x) o una versione successiva, usare MSSQL_PID=DeveloperStandard per Standard Developer Edition e MSSQL_PID=Developer per Enterprise Developer Edition.
Nota
La password deve seguire i criteri password predefiniti di SQL Server . Per impostazione predefinita, la password deve avere una lunghezza di almeno otto caratteri e contenere caratteri da tre dei quattro set seguenti: lettere maiuscole, lettere minuscole, cifre base-10 e simboli. Le password possono contenere fino a 128 caratteri. Usare password il più lunghe e complesse possibile.
Aggiungere l'archiviazione permanente con WSL per i contenitori di SQL Server
È possibile creare volumi di dati come descritto in Montare una directory host come volume di dati.
Ad esempio, eseguire il comando seguente per configurare un volume denominato sql_volume che si trova in /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
Quando si distribuisce un contenitore per SQL Server 2025 (17.x) o una versione successiva, usare MSSQL_PID=DeveloperStandard per Standard Developer Edition e MSSQL_PID=Developer per Enterprise Developer Edition.
Anche se si esegue il comando wsl --terminate, i dati non andranno persi. Quando si avvia di nuovo WSL ed si esegue il comando docker run per eseguire la distribuzione usando il volume sql_volume, tutti i dati rimangono intatti.
Se si vuole eliminare il volume persistente, assicurarsi che il contenitore che usa il volume venga arrestato e rimosso ed eseguire il comando seguente.
docker volume rm sql_volume
Osservazioni
È consigliabile configurare la maggior parte delle funzionalità supportate per SQL Server in Linux a scopo di sviluppo, ad eccezione delle funzionalità di continuità aziendale dipendenti dagli stack di clustering. Queste funzionalità, ad esempio Pacemaker o HPE Serviceguard, non sono supportate in WSL.
Per un elenco completo delle funzionalità non supportate per SQL Server in Linux, vedere Edition e le funzionalità supportate di SQL Server 2022 in Linux.
Connettersi in locale
La procedura seguente usa sqlcmd per connettersi localmente alla nuova istanza di SQL Server.
Cautela
La password deve seguire i criteri password predefiniti di SQL Server . Per impostazione predefinita, la password deve avere una lunghezza di almeno otto caratteri e contenere caratteri da tre dei quattro set seguenti: lettere maiuscole, lettere minuscole, cifre base-10 e simboli. Le password possono contenere fino a 128 caratteri. Usare password il più lunghe e complesse possibile.
Eseguire sqlcmd con parametri per il nome di SQL Server (
-S), il nome utente (-U) e la password (-P). In questa esercitazione ci si connette in locale, quindi il nome del server èlocalhost. Il nome utente èsae la password è quella specificata per l'accountsadurante l'installazione.sqlcmd -S localhost -U sa -P '<password>'Nota
Le versioni più recenti di sqlcmd sono protette per impostazione predefinita. Per altre informazioni sulla crittografia della connessione, vedere utilità sqlcmd per Windows e Connessione con sqlcmd per Linux e macOS. Se la connessione non riesce, è possibile aggiungere l'opzione
-Noa sqlcmd per specificare che la crittografia è facoltativa, non obbligatoria.È possibile omettere la password nella riga di comando per richiederne l'immissione.
Se successivamente si decide di connettersi in remoto, specificare il nome del computer o l'indirizzo IP per il parametro
-Se assicurarsi che la porta 1433 sia aperta nel firewall.In caso di esito positivo, si dovrebbe accedere a un prompt dei comandi sqlcmd:
1>.Se si verifica un errore di connessione, provare prima a diagnosticare il problema dal messaggio di errore. Esaminare quindi le raccomandazioni per la risoluzione dei problemi di connessione .
Creare ed eseguire query sui dati
Le sezioni seguenti illustrano come usare sqlcmd per creare un nuovo database, aggiungere dati ed eseguire una query semplice.
Per ulteriori informazioni sulla redazione di istruzioni Transact-SQL e query, vedere Tutorial: Write Transact-SQL statements.
Creare un nuovo database
La procedura seguente consente di creare un nuovo database denominato TestDB.
Dal prompt dei comandi di sqlcmd incollare il comando Transact-SQL seguente per creare un database di test:
CREATE DATABASE TestDB;Nella riga successiva scrivere una query per restituire il nome di tutti i database nel server:
SELECT Name FROM sys.databases;I due comandi precedenti non vengono eseguiti immediatamente. È necessario digitare
GOin una nuova riga per eseguire i comandi precedenti:GO
Inserire dati
Creare quindi una nuova tabella, dbo.Inventorye inserire due nuove righe.
Dal prompt dei comandi sqlcmd , passare al nuovo database
TestDB:USE TestDB;Creare una nuova tabella denominata
dbo.Inventory:CREATE TABLE dbo.Inventory ( id INT, name NVARCHAR (50), quantity INT, PRIMARY KEY (id) );Inserire i dati nella nuova tabella:
INSERT INTO dbo.Inventory VALUES (1, 'banana', 150); INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);Digitare
GOper eseguire i comandi precedenti:GO
Selezionare i dati
Eseguire ora una query per restituire dati dalla tabella dbo.Inventory.
Dal prompt dei comandi di sqlcmd, inserire una query che restituisca righe dalla tabella
dbo.Inventoryin cui la quantità è maggiore di 152.SELECT * FROM dbo.Inventory WHERE quantity > 152;Eseguire il comando :
GO
Uscire dal prompt dei comandi sqlcmd
Per terminare la sessione di sqlcmd, digitare QUIT:
QUIT
Migliori pratiche per le prestazioni
Dopo aver installato SQL Server in Linux, esaminare le procedure consigliate per la configurazione di Linux e SQL Server per migliorare le prestazioni per gli scenari di produzione. Per altre informazioni, vedere Procedure consigliate per le prestazioni e linee guida di configurazione per SQL Server in Linux.
Strumenti dati multipiattaforma
Oltre a sqlcmd, è possibile usare gli strumenti multipiattaforma seguenti per gestire SQL Server:
| Strumento | Descrizione |
|---|---|
| di Visual Studio Code | Editor di codice GUI multipiattaforma che esegue istruzioni Transact-SQL con l'estensione MSSQL. |
| PowerShell | Uno strumento di automazione e configurazione multipiattaforma basato sui cmdlet. |
| mssql-cli | Interfaccia a riga di comando multipiattaforma per l'esecuzione di comandi Transact-SQL. |
Connettersi da Windows
Gli strumenti di SQL Server in Windows si connettono alle istanze di SQL Server in Linux nello stesso modo in cui si connetterebbero a qualsiasi istanza remota di SQL Server.
Se si dispone di un computer Windows in grado di connettersi al computer Linux, provare gli stessi passaggi descritti in questo articolo da un prompt dei comandi di Windows che esegue sqlcmd. È necessario usare il nome o l'indirizzo IP del computer Linux di destinazione anziché localhoste assicurarsi che la porta TCP 1433 sia aperta nel computer SQL Server. In caso di problemi di connessione da Windows, vedere consigli per la risoluzione dei problemi di connessione.
Per altri strumenti eseguiti in Windows ma connettersi a SQL Server in Linux, vedere:
Altri scenari di distribuzione
Per altri scenari di installazione, vedere le risorse seguenti:
- Aggiornamento: informazioni su come aggiornare un'installazione esistente di SQL Server in Linux
- Disinstallare: disinstallare SQL Server in Linux
- installazione automatica: Impara come creare script per l'installazione senza richieste
- installazione offline: informazioni su come scaricare manualmente i pacchetti per l'installazione offline
Per risposte alle domande frequenti, vedere domande frequenti su SQL Server in Linux.
Contenuto correlato
Contribuire alla documentazione di SQL
Si è appreso che è possibile modificare il contenuto SQL manualmente? In tal caso, non solo contribuisci a migliorare la documentazione, ma vieni anche riconosciuto come collaboratore della pagina.
Per altre informazioni, vedere Modificare la documentazione di Microsoft Learn.