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 su Linux
Usare il sottosistema Windows per Linux (WSL) per 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 è not supportato per i carichi di lavoro di produzione. Eseguire SQL Server in ambienti WSL in una delle piattaforme supportate 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 potrai gestire con 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
Elencare tutte le distribuzioni valide che è possibile installare in WSL:
wsl -l -o
L'output è simile al seguente esempio:
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 (16.x) 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 è simile all'esempio seguente. Alla fine, mostra 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, seguire i passaggi descritti in Quickstart: Installare SQL Server e creare un database in Ubuntu per installare SQL Server 2022 (16.x).
È anche necessario installare gli strumenti da riga di comando di SQL Server.
Ottenere l'indirizzo IP
È possibile connettersi a un'istanza di SQL Server usando qualsiasi strumento client di SQL Server familiare, ad esempio sqlcmd, SQL Server Management Studio (SSMS) o l'estensione MSSQL per Visual Studio Code.
Per trovare l'indirizzo IP, eseguire il ifconfig comando :
ifconfig
L'output è simile al seguente esempio:
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
Note
La password deve seguire la politica predefinita di SQL Server password. Per impostazione predefinita, la password deve essere composta da almeno otto caratteri e contenere caratteri di tre delle quattro categorie seguenti: lettere maiuscole, lettere minuscole, cifre in base 10 e simboli. Le password possono contenere fino a 128 caratteri. Usare password il più possibile lunghe e complesse.
Aggiungere l'archiviazione permanente con WSL per i contenitori di SQL Server
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
Anche se si esegue il wsl --terminate comando, non si perdono i dati. 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 di arrestare e rimuovere il contenitore che usa il volume e quindi eseguire il comando seguente.
docker volume rm sql_volume
Remarks
È possibile configurare la maggior parte delle funzionalità supportate per SQL Server in Linux a scopo di sviluppo, ad eccezione delle funzionalità di continuità aziendale che dipendono 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 l'utilità sqlcmd per connettersi localmente alla nuova istanza di SQL Server. Scaricare e installare l'utilità sqlcmd per Windows, Linux e macOS.
Caution
La password deve seguire la politica predefinita di SQL Server password. Per impostazione predefinita, la password deve essere composta da almeno otto caratteri e contenere caratteri di tre delle quattro categorie seguenti: lettere maiuscole, lettere minuscole, cifre in base 10 e simboli. Le password possono contenere fino a 128 caratteri. Usare password il più possibile lunghe e complesse.
Eseguire
sqlcmdcon i parametri per il nome 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>'Note
Le versioni più recenti di
sqlcmdsono protette per impostazione predefinita. Per altre informazioni sulla crittografia della connessione, vedere Utilità sqlcmd per Windows, Linux e macOS. Se la connessione non riesce, è possibile aggiungere l'opzione-Noper specificaresqlcmdche la crittografia è facoltativa, non obbligatoria.È possibile omettere la password nella riga di comando in modo che venga richiesto di immetterla.
Se successivamente si decide di connettersi da remoto, specifica il nome del computer o l'indirizzo IP per il parametro
-Se assicurati che la porta 1433 sia aperta nel firewall.In caso di esito positivo, si dovrebbe accedere a un
sqlcmdprompt dei comandi:1>.Se si verifica un errore di connessione, provare a diagnosticare il problema dal messaggio di errore. Rivedere poi i consigli per la risoluzione dei problemi di connessione.
Creare e interrogare i dati
Le sezioni seguenti illustrano l'uso di sqlcmd per creare un nuovo database, aggiungere dati ed eseguire una query di base.
Per ulteriori informazioni sulla scrittura di istruzioni e query Transact-SQL, vedere Esercitazione: Come scrivere istruzioni e query Transact-SQL.
Creare un nuovo database
La seguente procedura consente di creare un nuovo database denominato TestDB.
Dal prompt dei comandi
sqlcmdincollare 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
Immettere dati
Creare poi una nuova tabella dbo.Inventory e inserire due nuove righe.
Dal prompt dei comandi
sqlcmd, passa al nuovo databaseTestDB.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
A questo punto, eseguire una query per restituire i dati dalla tabella dbo.Inventory.
Dal prompt dei comandi
sqlcmd, immettere una query che restituisca le righe della tabelladbo.Inventoryin cui la quantità è maggiore di 152.SELECT * FROM dbo.Inventory WHERE quantity > 152;Eseguire il comando seguente:
GO
Uscire dal prompt dei comandi di sqlcmd
Per terminare la sqlcmd sessione, digitare QUIT:
QUIT
Procedure consigliate per migliorare le prestazioni
Dopo l'installazione di SQL Server in Linux, esaminare le procedure consigliate per configurare Linux e SQL Server in modo da ottimizzare le prestazioni per gli scenari di produzione. Per ulteriori informazioni consulta:
- Procedure consigliate per le prestazioni: Archiviazione, kernel, CPU e rete per SQL Server in Linux
- Procedure consigliate per le prestazioni: memoria di SQL Server su Linux
Strumenti dati multipiattaforma
Oltre a sqlcmd, è possibile usare gli strumenti multipiattaforma seguenti per gestire SQL Server:
| Strumento | Descrizione |
|---|---|
| Visual Studio Code | Editor di codice GUI multipiattaforma che esegue istruzioni Transact-SQL con l'estensione MSSQL. |
| PowerShell | Strumento multipiattaforma di automazione e configurazione basato sui cmdlet. |
Connettersi da Windows
Gli strumenti di SQL Server in Windows consentono di connettersi alle istanze di SQL Server in Linux nello stesso modo in cui si connettono 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 Windows che esegue sqlcmd. È necessario usare il nome o l'indirizzo IP del computer Linux di destinazione invece di localhost e assicurarsi che la porta TCP 1433 sia aperta nel computer di SQL Server. Nel caso di problemi di connessione da Windows, vedere i consigli per la risoluzione dei problemi di connessione.
Per altri strumenti che vengono eseguiti in Windows, ma si connettono a SQL Server in Linux, vedere:
- Utilizzare SQL Server Management Studio su Windows per gestire SQL Server su Linux
- Usare PowerShell in Windows per gestire SQL Server in Linux
- Usare Visual Studio per creare database per SQL Server in Linux
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
- Disinstallazione: disinstallare SQL Server in Linux
- Installazione automatica: informazioni su come creare uno script per eseguire l'installazione senza interazioni
- Installazione offline: informazioni su come scaricare manualmente i pacchetti per l'installazione offline
Per le risposte alle domande frequenti, vedere Domande frequenti su SQL Server in Linux.
Contenuti correlati
- Eseguire la migrazione di un database di SQL Server da Windows a Linux usando il backup e ripristino
Contribuire alla documentazione di SQL
Sei a conoscenza che puoi modificare tu stesso il contenuto SQL? In tal caso, non solo contribuisci a migliorare la documentazione, ma vieni anche riconosciuto come collaboratore della pagina.
Per altre informazioni, vedere Modifica la documentazione di Microsoft Learn.