Erste Schritte mit Datenbanken auf Windows-Subsystem für Linux

In dieser schrittweisen Anleitung können Sie mit der Verbindung Ihres Projekts in WSL mit einer Datenbank beginnen. Erste Schritte mit MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server oder SQLite.

Voraussetzungen

Unterschiede zwischen Datenbanksystemen

Zu den beliebtesten Auswahlmöglichkeiten für ein Datenbanksystem gehören:

MySQL ist eine Open-Source-SQL relationale Datenbank, die Daten in einer oder mehreren Tabellen organisiert, in denen Datentypen miteinander zusammenhängen können. Es ist vertikal skalierbar, was bedeutet, dass ein ultimativer Computer die Arbeit für Sie erledigen wird. Es ist derzeit die am häufigsten verwendete der vier Datenbanksysteme.

PostgreSQL (manchmal als Postgres bezeichnet) ist auch eine Open-Source-SQL relationale Datenbank mit Schwerpunkt auf Erweiterbarkeit und Standards Compliance. Sie kann jetzt auch JSON verarbeiten, ist jedoch im Allgemeinen besser für strukturierte Daten, vertikale Skalierung und ACID-kompatible Anforderungen wie eCommerce und Finanztransaktionen geeignet.

Microsoft SQL Server enthält SQL Server für Windows, SQL Server für Linux und SQL in Azure. Dies sind auch relationale Datenbankverwaltungssysteme, die auf Servern eingerichtet sind, mit primärer Funktion zum Speichern und Abrufen von Daten, wie von Softwareanwendungen angefordert.

SQLite ist eine eigenständige, dateibasierte, "serverlose" Datenbank, die für die Portabilität, Zuverlässigkeit und gute Leistung auch in Umgebungen mit geringem Arbeitsspeicher bekannt ist.

MongoDB ist eine Open-Source-NoSQL-Dokumentdatenbank, die für die Arbeit mit JSON und zum Speichern von schemafreien Daten entwickelt wurde. Es ist horizontal skalierbar, was bedeutet, dass mehrere kleinere Computer die Arbeit für Sie erledigen. Es eignet sich gut für Flexibilität und unstrukturierte Daten und zwischenspeichern Echtzeitanalysen.

Redis ist ein Open-Source-NoSQL-Datenspeicher im Arbeitsspeicher. Es verwendet Schlüsselwertpaare für den Speicher anstelle von Dokumenten. Redis ist bekannt für seine Flexibilität, Leistung und breite Sprachunterstützung. Es ist flexibel genug, um als Cache- oder Nachrichtenbroker verwendet werden zu können und Datenstrukturen wie Listen, Sets und Hashes verwenden können.

Welche Art von Datenbank Sie auswählen sollten, hängt von der Art der Anwendung ab, mit der Sie die Datenbank verwenden werden. Sie sollten sich über die Vor- und Nachteile von strukturierten und unstrukturierten Datenbanken informieren und die geeignete Auswahl für Ihren Anwendungsfall treffen.

Installieren von MySQL

So installieren Sie MySQL auf WSL (ie. Ubuntu):

  1. Öffnen Sie Ihr WSL-Terminal (ie. Ubuntu).
  2. Aktualisieren Sie Ihre Ubuntu-Pakete: sudo apt update.
  3. Nachdem die Pakete aktualisiert wurden, installieren Sie MySQL mit: sudo apt install mysql-server
  4. Bestätigen Sie die Installation, und rufen Sie die Versionsnummer ab: mysql --version.

Möglicherweise möchten Sie auch das enthaltene Sicherheitsskript ausführen. Dadurch werden einige der weniger sicheren Standardoptionen für Remotestammanmeldungen und Beispielbenutzer geändert. So führen Sie das Sicherheitsskript aus:

  1. Starten Sie einen MySQL-Server: sudo /etc/init.d/mysql start
  2. Starten Sie die Sicherheitsskriptaufforderungen: sudo mysql_secure_installation
  3. Die erste Aufforderung fragt, ob Sie das Validate Password Plugin einrichten möchten, das verwendet werden kann, um die Stärke Ihres MySQL-Kennworts zu testen. Anschließend legen Sie ein Kennwort für den MySQL-Stammbenutzer fest, entscheiden, ob anonyme Benutzer entfernt werden sollen, entscheiden, ob der Stammbenutzer sich lokal und remote anmelden kann, entscheiden, ob die Testdatenbank entfernt werden soll und schließlich entscheiden, ob die Berechtigungstabellen sofort neu geladen werden sollen.

Um die MySQL-Eingabeaufforderung zu öffnen, geben Sie Folgendes ein: sudo mysql

Um zu sehen, welche Datenbanken Verfügbar sind, geben Sie in der MySQL-Eingabeaufforderung Folgendes ein: SHOW DATABASES;

Um eine neue Datenbank zu erstellen, geben Sie Folgendes ein: CREATE DATABASE database_name;

Um eine Datenbank zu löschen, geben Sie Folgendes ein: DROP DATABASE database_name;

Weitere Informationen zum Arbeiten mit MySQL-Datenbanken finden Sie in den MySQL-Dokumenten.

Um mit MySQL-Datenbanken in VS Code zu arbeiten, versuchen Sie die MySQL-Erweiterung.

Installieren von PostgreSQL

So installieren Sie PostgreSQL auf WSL (ie. Ubuntu):

  1. Öffnen Sie Ihr WSL-Terminal (ie. Ubuntu).
  2. Aktualisieren Sie Ihre Ubuntu-Pakete: sudo apt update.
  3. Nachdem die Pakete aktualisiert wurden, installieren Sie PostgreSQL (und das -contrib-Paket mit einigen nützlichen Dienstprogrammen) mit: sudo apt install postgresql postgresql-contrib.
  4. Bestätigen Sie die Installation, und rufen Sie die Versionsnummer ab: psql --version.

Es gibt drei Befehle, die Sie nach der Installation von PostgreSQL kennen müssen:

  • sudo service postgresql status zum Überprüfen des Status Ihrer Datenbank.
  • sudo service postgresql start um mit der Ausführung der Datenbank zu beginnen.
  • sudo service postgresql stop, um die Ausführung der Datenbank zu stoppen.

Der standardmäßige Administratorbenutzer (postgres) benötigt ein zugewiesenes Kennwort, um eine Verbindung mit einer Datenbank herzustellen. So legen Sie ein Kennwort fest:

  1. Geben Sie den Befehl sudo passwd postgres ein.
  2. Sie erhalten eine Aufforderung, Ihr neues Kennwort einzugeben.
  3. Schließen Sie das Terminal, und öffnen Sie es erneut.

So führen Sie PostgreSQL mit psql-Shell aus:

  1. Starten Ihres Postgres-Diensts: sudo service postgresql start.
  2. Verbinden Sie sich mit dem Postgres-Dienst, und öffnen Sie die psql-Shell: sudo -u postgres psql.

Nachdem Sie die psql-Shell erfolgreich eingegeben haben, sehen Sie, dass die Befehlszeile sich wie folgt ändert: postgres=#.

Hinweis

Alternativ dazu können Sie die psql-Shell öffnen, indem Sie mit su - postgres zum Postgres-Benutzer wechseln und dann den folgenden Befehl eingeben: psql.

Zum Beenden von postgres=# geben Sie folgendes ein: \q oder verwenden Sie die Tastenkombination: STRG+D

Um anzuzeigen, welche Benutzerkonten in Ihrer PostgreSQL-Installation erstellt wurden, geben Sie psql -c "\du" in Ihr WSL-Terminal ein, oder einfach \du, wenn die psql-Shell geöffnet ist. Dieser Befehl zeigt Spalten an: Kontobenutzername, Liste der Rollenattribute und Mitglied der Rollengruppen. Um zur Befehlszeile zurückzukehren, geben Sie q ein.

Weitere Informationen zum Arbeiten mit PostgreSQL-Datenbanken finden Sie in den PostgreSQL-Dokumenten.

Um mit PostgreSQL-Datenbanken in VS Code zu arbeiten, versuchen Sie die PostgreSQL-Erweiterung.

Installieren von MongoDB

So installieren Sie MongoDB (Version 5.0) auf WSL (Ubuntu 20.04):

  1. Öffnen Sie Ihr WSL-Terminal (ie. Ubuntu) und wechseln Sie zu Ihrem Heimverzeichnis: cd ~
  2. Aktualisieren Sie Ihre Ubuntu-Pakete: sudo apt update.
  3. Importieren Sie den öffentlichen Schlüssel, der vom MongoDB-Paketverwaltungssystem verwendet wird: wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
  4. Erstellen einer Listendatei für 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. Lokale Paketdatenbank neu laden: sudo apt-get update
  6. Installieren von MongoDB-Paketen: sudo apt-get install -y mongodb-org
  7. Bestätigen Sie die Installation, und rufen Sie die Versionsnummer ab: mongod --version.
  8. Erstellen eines Verzeichnisses zum Speichern von Daten: mkdir -p ~/data/db
  9. Führen Sie eine Mongo-Instanz aus: sudo mongod --dbpath ~/data/db
  10. Überprüfen Sie, ob Ihre MongoDB-Instanz mit: ps -e | grep 'mongod'
  11. Um die MongoDB-Shell zu beenden, verwenden Sie die Tastenkombinationen: STRG+C

Tipp

Die Installation von MongoDB erfordert möglicherweise geringfügig unterschiedliche Schritte, je nachdem, welche Linux-Verteilung für die Installation verwendet wird. Weitere Informationen finden Sie in den Lernprogrammen zur MongoDB-Installation. Beachten Sie auch, dass sich die MongoDB-Installation je nach Version # unterscheiden kann, die Sie installieren möchten. Verwenden Sie die Dropdownliste der Version in der oberen linken Ecke der MongoDB-Dokumentation, um die Version auszuwählen, die an Ihrem Ziel ausgerichtet ist.

MongoDB-Systemunterschiede

Im obigen Beispiel haben wir MongoDB direkt ausgeführt. Andere Lernprogramme können MongoDB mit dem integrierten Init-System des Betriebssystems starten. Möglicherweise wird in Tutorials oder Artikeln der Befehl sudo systemctl status mongodb verwendet. Derzeit hat WSL keine Unterstützung für systemd (ein Dienstverwaltungssystem in Linux).

Sie sollten keinen Unterschied bemerken, aber wenn in einem Tutorial die Verwendung von sudo systemctl empfohlen wird, verwenden Sie stattdessen sudo /etc/init.d/. Beispiel: sudo systemctl status docker entspricht in WSL sudo /etc/init.d/docker status. Sie können jedoch auch sudo service docker status verwenden.

Hinzufügen des Initskripts zum Starten von MongoDB als Dienst

Die oben aufgeführten Installationsanweisungen installieren eine Version von MongoDB, die kein Skript automatisch enthält /etc/init.d/. Wenn Sie die Dienstbefehle verwenden möchten, können Sie das Init.d-Skript für mongodb aus dieser Quelle herunterladen, dies manuell als Datei auf diesem Pfad platzieren: /etc/init.d/mongodb und dann können Sie Mongo als Dienst starten sudo service mongodb start.

  1. Laden Sie das Skript init.d für MongoDB herunter: curl https://raw.githubusercontent.com/mongodb/mongo/master/debian/init.d | sudo tee /etc/init.d/mongodb >/dev/null
  2. Weisen Sie diese ausführbaren Skriptberechtigungen zu: sudo chmod +x /etc/init.d/mongodb
  3. Jetzt können Sie MongoDB-Dienstbefehle verwenden:
    • sudo service mongodb status zum Überprüfen des Status Ihrer Datenbank. Sie sollten eine [Fail]-Antwort sehen, wenn keine Datenbank ausgeführt wird.
    • sudo service mongodb start um mit der Ausführung Ihrer Datenbank zu beginnen. Sie sollten eine [Ok]-Antwort sehen.
    • sudo service mongodb stop, um die Ausführung der Datenbank zu stoppen.
  4. Stellen Sie sicher, dass Sie mit dem Diagnosebefehl verbunden sind: mongo --eval 'db.runCommand({ connectionStatus: 1 })' Dadurch wird die aktuelle Datenbankversion, die Serveradresse und der Port und die Ausgabe des Statusbefehls ausgegeben. Der Wert 1 für das Feld „ok“ in der Antwort gibt an, dass der Server funktioniert.

Hinweis

MongoDB verfügt über mehrere Standardparameter, darunter die Speicherung von Daten in „/data/db“ und die Ausführung an Port 27017. Außerdem ist mongod der Daemon (Hostprozess für die Datenbank), und mongo ist die Befehlszeilenshell, die eine Verbindung mit einer bestimmten Instanz von mongod herstellt.

VS Code unterstützt die Arbeit mit MongoDB-Datenbanken über die Azure CosmosDB-Erweiterung, Sie können MongoDB-Datenbanken aus VS Code erstellen, verwalten und abfragen. Weitere Informationen finden Sie in den VS Code Dokumenten: Arbeiten mit MongoDB.

Weitere Informationen finden Sie in den MongoDB-Dokumenten:

Installieren von Microsoft SQL Server

So installieren Sie SQL Server auf WSL (ie. Ubuntu), folgen Sie diesem Schnellstart: Installieren Sie SQL Server und erstellen Sie eine Datenbank auf Ubuntu.

Um mit Microsoft SQL Server Datenbanken in VS Code zu arbeiten, versuchen Sie die MSSQL-Erweiterung.

Installieren von SQLite

So installieren Sie SQLite auf WSL (ie. Ubuntu):

  1. Öffnen Sie Das WSL-Terminal (ie. Ubuntu).
  2. Aktualisieren Sie Ihre Ubuntu-Pakete: sudo apt update.
  3. Nachdem die Pakete aktualisiert wurden, installieren Sie SQLite3 mit: sudo apt install sqlite3
  4. Bestätigen Sie die Installation, und rufen Sie die Versionsnummer ab: sqlite3 --version.

Um eine Testdatenbank zu erstellen, die als "example.db" bezeichnet wird, geben Sie folgendes ein: sqlite3 example.db

Geben Sie eine Liste Ihrer SQLite-Datenbanken ein: .databases

Geben Sie zum Anzeigen des Status Ihrer Datenbank folgendes ein: .dbinfo ?DB?

Die Datenbank wird nach der Erstellung leer sein. Sie können eine neue Tabelle für Ihre Datenbank mit CREATE TABLE empty (kol INTEGER);.

Jetzt wird die .dbinfo ?DB? Datenbank angezeigt, die Sie erstellt haben.

Um die SQLite-Eingabeaufforderung zu beenden, geben Sie folgendes ein: .exit

Weitere Informationen zum Arbeiten mit einer SQLite-Datenbank finden Sie in den SQLite-Dokumenten.

Um mit SQLite-Datenbanken in VS Code zu arbeiten, versuchen Sie die SQLite-Erweiterung.

Installieren von Redis

So installieren Sie Redis auf WSL (ie. Ubuntu):

  1. Öffnen Sie Das WSL-Terminal (ie. Ubuntu).
  2. Aktualisieren Sie Ihre Ubuntu-Pakete: sudo apt update.
  3. Nachdem die Pakete aktualisiert wurden, installieren Sie Redis mit: sudo apt install redis-server
  4. Bestätigen Sie die Installation, und rufen Sie die Versionsnummer ab: redis-server --version.

So starten Sie die Ausführung Ihres Redis-Servers: sudo service redis-server start

Überprüfen Sie, ob Redis funktionieren (redis-cli ist das Befehlszeilenschnittstellen-Hilfsprogramm, mit Redis zu sprechen): redis-cli ping Dies sollte eine Antwort von "PONG" zurückgeben.

So beenden Sie die Ausführung Ihres Redis-Servers: sudo service redis-server stop

Weitere Informationen zum Arbeiten mit einer Redis-Datenbank finden Sie in den Redis-Dokumenten.

Um mit Redis-Datenbanken in VS Code zu arbeiten, versuchen Sie die Redis-Erweiterung.

Anzeigen von Diensten, die ausgeführt werden und Profil aliase einrichten

Geben Sie folgendes ein, um die derzeit ausgeführten Dienste auf Ihrer WSL-Verteilung anzuzeigen: service --status-all

Das Eingeben von sudo service mongodb start oder sudo service postgres start und sudo -u postgrest psql kann mühsam werden. Sie können jedoch in Betracht ziehen, Aliase in Ihrer Datei .profile unter WSL einzurichten, um diese Befehle einfacher verwenden zu können und sie sich besser zu merken.

So richten Sie einen eigenen benutzerdefinierten Alias oder eine Verknüpfung für die Ausführung dieser Befehle ein

  1. Öffnen Sie das WSL-Terminal, und geben Sie cd ~ ein, um sicherzustellen, dass Sie sich im Stammverzeichnis befinden.

  2. Öffnen Sie die Datei .profile, in der die Einstellungen für das Terminal gesteuert werden, mit dem Terminal-Text-Editor nano: sudo nano .profile.

  3. Fügen Sie am Ende der Datei Folgendes hinzu (ohne die # set PATH-Einstellungen zu ändern):

    # My Aliases
    alias start-pg='sudo service postgresql start'
    alias run-pg='sudo -u postgres psql'
    

    Dadurch können Sie start-pg eingeben, um den PostgreSQL-Dienst zu starten, und run-pg, um die psql-Shell zu öffnen. Sie können start-pg und run-pg in beliebige Namen ändern. Achten Sie jedoch darauf, keinen Befehl zu überschreiben, der von Postgres bereits verwendet wird.

  4. Nachdem Sie die neuen Aliase hinzugefügt haben, beenden Sie den Text-Editor nano, indem Sie STRG+X drücken, Y (Ja) auswählen, wenn Sie gefragt werden, ob Sie speichern möchten, und die EINGABETASTE drücken (wobei Sie den Dateinamen .profilebeibehalten).

  5. Schließen Sie das WSL-Terminal, öffnen Sie es erneut, und probieren Sie dann die neuen Aliasbefehle aus.

Problembehandlung

Fehler: Verzeichnissynchronisierung fdatasync Ungültiges Argument

Stellen Sie sicher, dass Sie Ihre Linux-Verteilung im WSL 2-Modus ausführen. Hilfe beim Wechseln von WSL 1 zu WSL 2 finden Sie unter Festlegen ihrer Verteilerversion auf WSL 1 oder WSL 2.

Zusätzliche Ressourcen