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

Differenze tra sistemi di database

Le scelte più comuni per un sistema di database includono:

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.conffile di configurazione.

Esempio di utilizzo della distribuzione Ubuntu:

  1. Aprire la riga di comando di Ubuntu e aggiornare i pacchetti disponibili: sudo apt update
  2. Dopo aver aggiornato i pacchetti, installare MySQL con: sudo apt install mysql-server
  3. Confermare l'installazione e ottenere il numero di versione: mysql --version
  4. Avviare il server MySQL/controllare lo stato: systemctl status mysql
  5. Per aprire il prompt di MySQL, immettere: sudo mysql
  6. Per visualizzare i database disponibili, nel prompt di MySQL immettere: SHOW DATABASES;
  7. Per creare un nuovo database, immettere: CREATE DATABASE database_name;
  8. 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:

  1. Avviare un server MySQL: sudo service mysql start
  2. Avviare i prompt dello script di sicurezza: sudo mysql_secure_installation
  3. 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.
  4. 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):

  1. Aprire il terminale WSL, ad esempio Ubuntu.
  2. Aggiornare i pacchetti di Ubuntu: sudo apt update
  3. Dopo aver aggiornato i pacchetti, installare PostgreSQL e il pacchetto -contrib, che contiene importanti utilità, con: sudo apt install postgresql postgresql-contrib
  4. 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:

  1. Immettere il comando: sudo passwd postgres
  2. Verrà richiesto di immettere la nuova password.
  3. Chiudere e riaprire il terminale.

Eseguire PostgreSQL con la shell psql:

  1. Avviare il servizio Postgres: sudo service postgresql start
  2. 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.conffile 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:

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):

  1. Aprire il terminale WSL, ad esempio Ubuntu.
  2. Aggiornare i pacchetti di Ubuntu: sudo apt update
  3. Dopo aver aggiornato i pacchetti, installare SQLite3 con: sudo apt install sqlite3
  4. 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):

  1. Aprire il terminale WSL, ad esempio Ubuntu.
  2. Aggiornare i pacchetti di Ubuntu: sudo apt update
  3. Dopo aver aggiornato i pacchetti, installare Redis con: sudo apt install redis-server
  4. 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:

  1. Aprire il terminale WSL e immettere cd ~ per assicurarsi di essere nella directory radice.

  2. Aprire il file .profile, che controlla le impostazioni per il terminale, con l'editor di testo del terminale, Nano: sudo nano .profile

  3. 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 e run-pg per aprire la shell psql. È possibile modificare start-pg e run-pg inserendo i nomi desiderati. In questa operazione, prestare attenzione a non sovrascrivere un comando già usato da Postgres.

  4. 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.

  5. 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