Attività iniziali con database in sottosistema Windows per Linux

Questa guida dettagliata consente di iniziare a connettere il progetto in WSL a un database. Attività iniziali con 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 open source SQL, organizzando 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 voi. Attualmente è il più diffuso dei quattro sistemi di database.

PostgreSQL (noto anche come Postgres) è anche un database relazionale open source SQL con particolare attenzione alla conformità degli standard e all'estendibilità. 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 configurati nei server con funzione primaria di archiviazione e recupero dei dati richiesti dalle applicazioni software.

SQLite è un database autonomo, basato su file, "serverless", noto per la portabilità, l'affidabilità e le prestazioni ottimali anche in ambienti a memoria ridotta.

MongoDB è un database di documenti NoSQL open source progettato per l'uso con JSON e l'archiviazione di dati senza schema. È scalabile orizzontalmente, il che significa che più computer più piccoli eseguiranno il lavoro per te. È utile per la flessibilità e i dati non strutturati e la memorizzazione nella cache dell'analisi in tempo reale.

Redis è un archivio di strutture dati in memoria NoSQL open source. Usa coppie chiave-valore per l'archiviazione anziché per i documenti. Redis è noto per la flessibilità, le prestazioni e il supporto di linguaggio wide. È abbastanza flessibile da usare come cache o broker di messaggi 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 modificate alcune delle opzioni predefinite meno sicure per elementi quali account di accesso radice remoti e utenti di esempio. Per eseguire lo script di sicurezza:

  1. Avviare un server MySQL: sudo /etc/init.d/mysql start
  2. Avviare le richieste dello script di sicurezza: sudo mysql_secure_installation
  3. La prima richiesta chiederà se si vuole configurare il plug-in Convalida password, che può essere usato per testare il livello di attendibilità della password MySQL. Si imposterà quindi una password per l'utente radice MySQL, si deciderà se rimuovere o meno utenti anonimi, decidere se consentire all'utente radice 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 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 visualizzerà colonne: Nome utente account, Elenco di attributi 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 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 della versione nell'angolo superiore sinistro della documentazione di MongoDB per selezionare la versione allineata all'obiettivo.

Differenze di sistema init di MongoDB

Nell'esempio precedente è stato eseguito MongoDB direttamente. Altre esercitazioni possono avviare MongoDB usando il sistema init predefinito del sistema operativo. È possibile che il comando sudo systemctl status mongodb venga usato nelle esercitazioni o negli articoli. Attualmente WSL non dispone del supporto per systemd (un 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, posizionare manualmente come file in questo percorso: /etc/init.d/mongodb e quindi è possibile avviare Mongo come servizio usando 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 eseguibili 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 che si sia connessi al server di database con il comando di diagnostica: mongo --eval 'db.runCommand({ connectionStatus: 1 })' verrà restituita la versione corrente del database, l'indirizzo del server e la porta e l'output del comando di stato. 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 dei database MongoDB tramite l'estensione Azure CosmosDB, è possibile creare, gestire ed eseguire query sui database MongoDB dall'interno di VS Code. Per altre informazioni, visitare la documentazione VS Code: Uso di MongoDB.

Altre informazioni nella documentazione di MongoDB:

Installare Microsoft SQL Server

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

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

Installare SQLite

Per installare SQLite in WSL (ie. Ubuntu:

  1. Aprire il terminale WSL (ie. 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?

Il database sarà vuoto dopo la creazione. È possibile creare una nuova tabella per il database con CREATE TABLE empty (kol INTEGER);.

Ora immettere l'oggetto .dbinfo ?DB? mostrerà il database creato.

Per uscire dal prompt SQLite, immettere: .exit

Per altre informazioni sull'uso di un database SQLite, vedere la documentazione SQLite.

Per usare i database SQLite in VS Code, provare l'estensione SQLite.

Installare Redis

Per installare Redis in WSL (ie. Ubuntu:

  1. Aprire il terminale WSL (ie. 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): redis-cli ping dovrebbe restituire una risposta di "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 Redis.

Per usare i database Redis in VS Code, provare l'estensione Redis.

Vedere i servizi in esecuzione 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 fdatasync 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