Introduzione ai database nel sottosistema Windows per Linux
Questa guida dettagliata contiene informazioni per connettere il progetto in WSL a un database. Introduzione a MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server e SQLite.
Prerequisiti
- Esecuzione di Windows 11 o Windows 10, aggiornato alla versione 2004, build 19041 o successive.
- Installare una distribuzione Linux usando WSL e creare un nome utente e una password Linux.
Differenze tra sistemi di database
Le scelte più comuni per un sistema di database includono:
- MySQL (SQL)
- PostgreSQL (SQL)
- Microsoft SQL Server (SQL)
- SQLite (SQL)
- MongoDB (NoSQL)
- Redis (NoSQL)
MySQL è un database relazionale SQL open source, che organizza i dati in una o più tabelle in cui i tipi di dati possono essere correlati tra loro. È scalabile verticalmente, il che significa che una macchina finale eseguirà il lavoro per l’utente. Attualmente è il più diffuso dei quattro sistemi di database.
PostgreSQL, noto anche come Postgres, è sempre un database relazionale SQL open source caratterizzato da estendibilità e conformità agli standard. Ora può gestire anche JSON, ma in genere è più indicato per dati strutturati, ridimensionamento verticale ed esigenze compatibili con ACID, ad esempio eCommerce e transazioni finanziarie.
Microsoft SQL Server include SQL Server in Windows, SQL Server in Linux e SQL in Azure. Si tratta sempre di sistemi di gestione di database relazionali configurati nei server con la funzione primaria di archiviazione e recupero dei dati in base alle richieste delle applicazioni software.
SQLite è un database open source autonomo “serverless” basato su file, noto per la portabilità, l'affidabilità e buone prestazioni anche in ambienti a memoria insufficiente.
MongoDB è un database open source di documenti NoSQL progettato per essere usato con JSON e archiviare dati privi di schema. È scalabile orizzontalmente, il che significa che diverse macchine più piccole eseguiranno il lavoro per l’utente. È utile per la flessibilità, i dati non strutturati e la memorizzazione nella cache dell'analisi in tempo reale.
Redis è un archivio di strutture di dati NoSQL in memoria open source. Per l’archiviazione usa coppie chiave-valore anziché documenti.
Installare MySQL
Per installare MySQL su una distribuzione Linux in esecuzione in WSL, seguire le istruzioni di installazione di MySQL in Linux nella documentazione di MySQL. Potrebbe essere necessario abilitare prima il supporto systemd nel wsl.conf
file di configurazione.
Esempio di utilizzo della distribuzione Ubuntu:
- Aprire la riga di comando di Ubuntu e aggiornare i pacchetti disponibili:
sudo apt update
- Dopo aver aggiornato i pacchetti, installare MySQL con:
sudo apt install mysql-server
- Confermare l'installazione e ottenere il numero di versione:
mysql --version
- Avviare il server MySQL/controllare lo stato:
systemctl status mysql
- Per aprire il prompt di MySQL, immettere:
sudo mysql
- Per visualizzare i database disponibili, nel prompt di MySQL immettere:
SHOW DATABASES;
- Per creare un nuovo database, immettere:
CREATE DATABASE database_name;
- Per eliminare un database, immettere:
DROP DATABASE database_name;
Per altre informazioni sull'uso dei database MySQL, vedere la documentazione di MySQL.
Per usare i database MySQL in VS Code, provare l'estensione MySQL.
È inoltre possibile eseguire lo script di sicurezza incluso. Questo cambia alcune delle opzioni predefinite meno sicure per operazioni come i login root remoti e gli utenti campione. Lo script include anche i passaggi per modificare la password dell'utente radice MySQL. Per eseguire lo script di sicurezza:
- Avviare un server MySQL:
sudo service mysql start
- Avviare i prompt dello script di sicurezza:
sudo mysql_secure_installation
- Il primo prompt chiederà se si vuole configurare IL COMPONENTE VALIDATE PASSWORD, che può essere usato per testare il livello di forza della password MySQL. Se si desidera impostare una password semplice, evitare di impostare questo componente.
- Verrà quindi impostata/modificata la password per l'utente radice MySQL, si deciderà se rimuovere o meno utenti anonimi, si deciderà se consentire all'utente radice di accedere sia in locale che in remoto, si deciderà se rimuovere il database di test e, infine, si deciderà se ricaricare immediatamente le tabelle dei privilegi.
Installare PostgreSQL
Per installare PostgreSQL in WSL (ad es. Ubuntu):
- Aprire il terminale WSL, ad esempio Ubuntu.
- Aggiornare i pacchetti di Ubuntu:
sudo apt update
- Dopo aver aggiornato i pacchetti, installare PostgreSQL e il pacchetto -contrib, che contiene importanti utilità, con:
sudo apt install postgresql postgresql-contrib
- Confermare l'installazione e ottenere il numero di versione:
psql --version
Dopo l'installazione di PostgreSQL è necessario conoscere tre comandi:
sudo service postgresql status
per verificare lo stato del database.sudo service postgresql start
per avviare l'esecuzione del database.sudo service postgresql stop
per interrompere l'esecuzione del database.
Per consentire la connessione a un database, è necessario assegnare una password all'utente amministratore predefinito, postgres
. Per impostare una password:
- Immettere il comando:
sudo passwd postgres
- Verrà richiesto di immettere la nuova password.
- Chiudere e riaprire il terminale.
Eseguire PostgreSQL con la shell psql:
- Avviare il servizio Postgres:
sudo service postgresql start
- Connettersi al servizio Postgres e aprire la shell psql:
sudo -u postgres psql
Dopo aver immesso correttamente la shell psql, la modifica della riga di comando avrà un aspetto simile al seguente: postgres=#
Nota
In alternativa, è possibile aprire la shell psql passando all'utente di Postgres con: su - postgres
e quindi immettendo il comando: psql
.
Per uscire da postgres=# immettere: \q
o usare la combinazione di tasti: Ctrl+D
Per visualizzare gli account utente creati nell'installazione di PostgreSQL, nel terminale WSL usare: psql --command="\du"
... oppure solo \du
se la shell psql è aperta. Questo comando mostrerà le colonne: Account User Name (Nome utente dell'account), List of Roles Attributes (Elenco di attributi dei ruoli) e Member of role group(s) (Membro dei gruppi di ruoli). Per tornare alla riga di comando, immettere: q
.
Per altre informazioni sull'uso dei database PostgreSQL, vedere la documentazione di PostgreSQL.
Per usare i database PostgreSQL in VS Code, provare l'estensione PostgreSQL.
Installare MongoDB
Per installare MongoDB, vedere la documentazione di Mongodb: Installare MongoDB Community Edition su Linux
L'installazione di MongoDB può richiedere passaggi leggermente diversi a seconda della distribuzione Linux usata per l'installazione. Si noti anche che l'installazione di MongoDB può variare a seconda della versione che si intende installare. Usare l'elenco a discesa delle versioni nell'angolo superiore sinistro della documentazione di MongoDB per selezionare la versione in linea con l’obiettivo. Infine, potrebbe essere necessario abilitare il supporto systemd nel wsl.conf
file di configurazione della distribuzione Linux usata con WSL. Il comando systemctl
fa parte del sistema systemd init e potrebbe non funzionare se la distribuzione usa systemv.
VS Code supporta l'uso dei database MongoDB tramite l'estensione Azure CosmosDB, grazie alla quale puoi creare, gestire ed eseguire query sui database MongoDB dall'interno di VS Code. Per altre informazioni, vedere la documentazione di VS Code: Uso di MongoDB.
Per altre informazioni, vedi la documentazione di MongoDB:
- Introduzione all'uso di MongoDB
- Creare utenti
- CRUD: creazione, lettura, aggiornamento ed eliminazione
- Documentazione di riferimento
Installare Microsoft SQL Server
Per installare SQL Server in una distribuzione Linux eseguita da WSL: SQL Server in Linux. Per usare i database di Microsoft SQL Server in VS Code, provare l'estensione MSSQL.
Installare SQLite
Per installare SQLite in WSL (ad es. Ubuntu):
- Aprire il terminale WSL, ad esempio Ubuntu.
- Aggiornare i pacchetti di Ubuntu:
sudo apt update
- Dopo aver aggiornato i pacchetti, installare SQLite3 con:
sudo apt install sqlite3
- Confermare l'installazione e ottenere il numero di versione:
sqlite3 --version
Per creare un database di test, denominato "example.db", immettere: sqlite3 example.db
Per visualizzare un elenco dei database SQLite, immettere: .databases
Per visualizzare lo stato del database, immettere: .dbinfo ?DB?
Una volta creato, il database sarà vuoto. È possibile creare una nuova tabella per il database con CREATE TABLE empty (kol INTEGER);
.
Ora immettendo .dbinfo ?DB?
verrà visualizzato il database creato.
Per uscire dal prompt di SQLite, immettere: .exit
Per altre informazioni sull'uso di un database SQLite, vedere la documentazione di SQLite.
Per usare i database SQLite in VS Code, provare l'estensione SQLite.
Installare Redis
Per installare Redis in WSL (ad es. Ubuntu):
- Aprire il terminale WSL, ad esempio Ubuntu.
- Aggiornare i pacchetti di Ubuntu:
sudo apt update
- Dopo aver aggiornato i pacchetti, installare Redis con:
sudo apt install redis-server
- Confermare l'installazione e ottenere il numero di versione:
redis-server --version
Per avviare l'esecuzione del server Redis: sudo service redis-server start
Verificare se redis funziona (redis-cli è l'utilità dell'interfaccia della riga di comando per comunicare con Redis): redis-cli ping
dovrebbe restituire una risposta di "PONG".
Per interrompere l'esecuzione del server Redis: sudo service redis-server stop
Per altre informazioni sull'uso di un database Redis, vedere la documentazione di Redis.
Per usare i database Redis in VS Code, provare l'estensione Redis.
Vedere i servizi in esecuzione e configurare gli alias dei profili
Per visualizzare i servizi attualmente in esecuzione nella distribuzione WSL, immettere: service --status-all
Digitare sudo service mongodb start
o sudo service postgres start
e sudo -u postgrest psql
può essere noioso. Tuttavia, è possibile provare a configurare gli alias nel file .profile
in WSL per fare in modo che questi comandi siano più rapidi da usare e più facili da ricordare.
Per configurare un alias personalizzato, o una scelta rapida da tastiera, per eseguire questi comandi:
Aprire il terminale WSL e immettere
cd ~
per assicurarsi di essere nella directory radice.Aprire il file
.profile
, che controlla le impostazioni per il terminale, con l'editor di testo del terminale, Nano:sudo nano .profile
Nella parte inferiore del file non modificare le impostazioni
# set PATH
e aggiungere quanto segue:# My Aliases alias start-pg='sudo service postgresql start' alias run-pg='sudo -u postgres psql'
Questo consentirà di immettere
start-pg
per avviare l'esecuzione del servizio PostgreSQL erun-pg
per aprire la shell psql. È possibile modificarestart-pg
erun-pg
inserendo i nomi desiderati. In questa operazione, prestare attenzione a non sovrascrivere un comando già usato da Postgres.Dopo aver aggiunto i nuovi alias, chiudere l'editor di testo Nano usando CTRL+X, selezionare
Y
(Sì) quando viene richiesto di salvare e premere INVIO, lasciando il nome del file.profile
.Chiudere e riaprire il terminale WSL, quindi provare a usare i nuovi comandi alias.
Risoluzione dei problemi
Errore: argomento directory-sync fdatasync non valido
Assicurarsi di eseguire la distribuzione Linux in modalità WSL 2. Per supporto nel passaggio da WSL 1 a WSL 2, vedere Impostare la versione di distribuzione su WSL 1 o WSL 2.
Risorse aggiuntive
Windows Subsystem for Linux