Introduzione ai database in sottosistema Windows per Linux

Questa guida dettagliata consente di iniziare a connettere il progetto in WSL a un database. Introduzione a MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server o 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 un computer finale farà il lavoro per l'utente. È attualmente il più usato dei quattro sistemi di database.

PostgreSQL (talvolta denominato Postgres) è anche un database relazionale SQL open source con particolare attenzione all'estendibilità e alla 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 anche di sistemi di gestione di database relazionali impostati in server con la funzione principale di archiviazione e recupero dei dati come richiesto dalle applicazioni software.

SQLite è un database open source indipendente, basato su file e "serverless", noto per la portabilità, l'affidabilità e le buone prestazioni anche in ambienti con memoria insufficiente.

MongoDB è un database di documenti NoSQL open source progettato per funzionare con JSON e archiviare dati senza schema. È scalabile orizzontalmente, il che significa che più computer più piccoli funzioneranno per l'utente. È un'ottima opzione per la flessibilità e i dati non strutturati e per la memorizzazione nella cache dell'analisi in tempo reale.

Redis è un archivio di strutture di dati in memoria NoSQL open source. Usa coppie chiave-valore per l'archiviazione anziché documenti. Redis è noto per la flessibilità, le prestazioni e l'ampio supporto linguistico. È sufficientemente flessibile da essere usato come broker di messaggi o cache e può usare strutture di dati come elenchi, set e hash.

Il tipo di database scelto dipende dal tipo di applicazione con cui verrà usato il database. Si consiglia di esaminare i vantaggi e gli svantaggi dei database strutturati e non strutturati e di scegliere in base al caso d'uso.

Installare MySQL

Per installare MySQL in WSL (ad esempio 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 MySQL con: sudo apt install mysql-server
  4. Confermare l'installazione e ottenere il numero di versione: mysql --version

È anche possibile eseguire lo script di sicurezza incluso. In questo modo vengono cambiate alcune delle opzioni predefinite meno sicure per elementi come gli account di accesso radice remoti e gli utenti di esempio. Per eseguire lo script di sicurezza:

  1. Avviare un server MySQL: sudo /etc/init.d/mysql start
  2. Avviare i prompt dello script di sicurezza: sudo mysql_secure_installation
  3. La prima richiesta chiederà se si desidera configurare il plug-in Convalida password, che può essere usato per testare il livello di complessità della password mySQL. Si imposta quindi una password per l'utente radice di MySQL, si decide se rimuovere gli utenti anonimi, si decide se consentire all'utente root di accedere sia in locale che in remoto, decidere se rimuovere il database di test e, infine, decidere se ricaricare immediatamente le tabelle dei privilegi.

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.

Installare PostgreSQL

Per installare PostgreSQL in WSL (ad esempio 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.

Per 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 il tasto di scelta rapida: CTRL+D

Per visualizzare gli account utente creati nell'installazione di PostgreSQL, nel terminale WSL usare: psql -c "\du"... oppure solo \du se la shell psql è aperta. Questo comando visualizza le colonne Nome utente account, Elenco di attributi dei ruoli e 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 (versione 5.0) in WSL (Ubuntu 20.04):

  1. Aprire il terminale WSL,ad esempio Ubuntu) e passare alla home directory: cd ~
  2. Aggiornare i pacchetti di Ubuntu: sudo apt update
  3. Importare la chiave pubblica usata dal sistema di gestione pacchetti MongoDB: wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
  4. Creare un file di elenco per MongoDB: echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  5. Ricaricare il database del pacchetto locale: sudo apt-get update
  6. Installare i pacchetti MongoDB: sudo apt-get install -y mongodb-org
  7. Confermare l'installazione e ottenere il numero di versione: mongod --version
  8. Creare una directory per archiviare i dati: mkdir -p ~/data/db
  9. Eseguire un'istanza di Mongo: sudo mongod --dbpath ~/data/db
  10. Verificare che l'istanza di MongoDB sia in esecuzione con: ps -e | grep 'mongod'
  11. Per uscire dalla shell mongoDB, usare i tasti di scelta rapida: CTRL+C

Suggerimento

L'installazione di MongoDB può richiedere passaggi leggermente diversi a seconda della distribuzione di Linux usata per l'installazione. Vedere le esercitazioni sull'installazione di MongoDB. 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 allineata all'obiettivo.

Differenze del sistema init di MongoDB

Nell'esempio precedente è stato eseguito direttamente MongoDB. Altre esercitazioni possono avviare MongoDB usando il sistema init incorporato del sistema operativo. È possibile che il comando sudo systemctl status mongodb venga usato nelle esercitazioni o negli articoli. Attualmente WSL non supporta (un systemd sistema di gestione dei servizi in Linux).

Non dovrebbero esserci differenze, ma se un'esercitazione consiglia di usare sudo systemctl, usare invece: sudo /etc/init.d/. Ad esempio, sudo systemctl status docker, per WSL sarebbe sudo /etc/init.d/docker status... in alternativa, è anche possibile usare sudo service docker status.

Aggiungere lo script init per avviare MongoDB come servizio

Le istruzioni di installazione precedenti installano una versione di MongoDB che non include automaticamente uno script in /etc/init.d/ . Se si desidera usare i comandi del servizio, è possibile scaricare lo script init.d per mongodb da questa origine, posizionarlo manualmente come file in questo percorso: e quindi avviare Mongo come servizio usando /etc/init.d/mongodb sudo service mongodb start .

  1. Scaricare lo script init.d per MongoDB: curl https://raw.githubusercontent.com/mongodb/mongo/master/debian/init.d | sudo tee /etc/init.d/mongodb >/dev/null
  2. Assegnare le autorizzazioni per l'eseguibile dello script: sudo chmod +x /etc/init.d/mongodb
  3. È ora possibile usare i comandi del servizio MongoDB:
    • sudo service mongodb status per verificare lo stato del database. Se non è in esecuzione alcun database, verrà visualizzata una risposta [Fail].
    • sudo service mongodb start per avviare l'esecuzione del database. Verrà visualizzata una risposta [Ok].
    • sudo service mongodb stop per interrompere l'esecuzione del database.
  4. Verificare di essere connessi al server di database con il comando di diagnostica: verranno restituiti la versione corrente del database, l'indirizzo e la porta del server e mongo --eval 'db.runCommand({ connectionStatus: 1 })' l'output del comando status. Il valore 1 per il campo "ok" nella risposta indica che il server funziona.

Nota

MongoDB ha diversi parametri predefiniti, tra cui l'archiviazione dei dati in /data/DB e l'esecuzione sulla porta 27017. Inoltre, mongod è il daemon, ovvero il processo host per il database, e mongo è la shell della riga di comando che si connette a un'istanza specifica di mongod.

VS Code supporta l'uso di database MongoDB tramite l'estensione Azure CosmosDB, è possibile creare, gestire ed eseguire query su database MongoDB dall'interno VS Code. Per altre informazioni, vedere la documentazione VS Code: Uso di MongoDB.

Per altre informazioni, vedere la documentazione di MongoDB:

Installare Microsoft SQL Server

Per installare SQL Server in WSL (ad esempio, Ubuntu), seguire questa guida introduttiva: Installare SQL Server e creare un database in Ubuntu.

Per usare i Microsoft SQL Server database in VS Code, provare l'estensione MSSQL.

Installare SQLite

Per installare SQLite in WSL (ad esempio, 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?

Per uscire dal prompt 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 esempio, 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 parlare con Redis): dovrebbe restituire una risposta redis-cli ping "PONG".

Per arrestare 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.

Visualizzare i servizi che eseguono e configurare gli alias del profilo

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 fdatasync di sincronizzazione directory non valido

Assicurarsi di eseguire la distribuzione Linux in modalità WSL 2. Per informazioni sul passaggio da WSL 1 a WSL 2, vedere Impostare la versione di distribuzione su WSL 1 o WSL 2.

Risorse aggiuntive