Installationsanleitung für Apache CouchDB auf Ubuntu 20.04

Überblick

Apache CouchDB ist ein Open-Source-NoSQL-Datenbanksystem, das Informationen im JSON-Dokumentenformat speichert. Die Verwaltung der Daten erfolgt über JavaScript MapReduce-Syntax und eine HTTP-API als Hauptabfragemethoden.

Entwickelt in Erlang, bietet CouchDB Funktionen für Echtzeitskalierbarkeit und Replikation und ist ideal für verteilte Datenbanksysteme, die eine Synchronisation über Netzwerke mit geringer Bandbreite benötigen. Diese Eigenschaften machen CouchDB zu einer ausgezeichneten Wahl für den Aufbau stabiler Anwendungen in Bereichen wie Banking, Telekommunikation, E-Commerce und Instant Messaging.

In dieser Anleitung erfahren Sie, wie Sie den CouchDB-Datenbankserver auf Ubuntu 20.04 installieren und in Betrieb nehmen.

Voraussetzungen

Stellen Sie vor Beginn sicher, dass Sie Folgendes besitzen:

  • Ein Ubuntu 20.04-Server.
  • Ein Benutzerkonto mit sudo-Rechten, ohne Root-Zugriff.

Schritt 1: Installation benötigter Pakete und Herunterladen des CouchDB-Pakets

Da das Apache CouchDB-Paket nicht in den Standard-Ubuntu-Repositories enthalten ist, müssen Sie ein externes Repository hinzufügen, indem Sie die folgenden Schritte ausführen.

Verbindung zum Server herstellen

Stellen Sie per SSH eine Verbindung zu Ihrem Server her, indem Sie ein Benutzerkonto mit sudo-Rechten verwenden.

Aktualisieren der Paketlisten

Aktualisieren Sie die Paketdatenbank, um sicherzustellen, dass alle Repositories auf dem neuesten Stand sind:

Installation notwendiger Abhängigkeiten

Installieren Sie curl, apt-transport-https und gnupg mit folgendem Befehl:

  $ sudo apt install -y curl apt-transport-https gnupg

Abrufen des CouchDB GPG-Schlüssels

Laden Sie den CouchDB GPG-Schlüssel herunter, damit der apt-Paketmanager die Echtheit des externen Repositories überprüfen kann:

  $ curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1 source /etc/os-release

Freischalten des CouchDB-Repositories

Fügen Sie das CouchDB-Repository zu Ihrer Liste verfügbarer Paketquellen hinzu:

  $ echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ focal main" | sudo tee /etc/apt/sources.list.d/couchdb.list >/dev/null

Schritt 2: Repository aktualisieren und CouchDB installieren

Aktualisieren der Paketliste

Aktualisieren Sie Ihre Paketquellen, um das neu hinzugefügte CouchDB-Repository zu erkennen:

Installation des CouchDB-Pakets

Installieren Sie CouchDB, indem Sie den folgenden Befehl ausführen:

  $ sudo apt install -y couchdb

Drücken Sie die Taste Tab und anschließend Enter, um mit der Installation fortzufahren.

Auswahl des CouchDB-Installationsmodus

Wählen Sie im nächsten Schritt die Option standalone aus. Danach drücken Sie Tab und Enter, um fortzufahren.

Allgemeiner Typ der CouchDB-Konfiguration:

  • standalone
  • clustered
  • none

Konfiguration der Schnittstellen-Bindung

Belassen Sie die voreingestellte Bind-Adresse bei 127.0.0.1. Drücken Sie dann Tab und Enter, um weiterzumachen.

CouchDB-Schnittstellen-Bindungsadresse:

  • 127.0.0.1

Festlegen eines Administratorpassworts

Geben Sie ein Passwort Ihrer Wahl für das CouchDB-admin-Konto ein und drücken Sie Tab und anschließend Enter.

Passwort für den CouchDB-„admin“-Benutzer:

  • EXAMPLE_PASSWORD

Bestätigung des Administratorpassworts

Wiederholen Sie Ihr gewähltes Administratorpasswort und drücken Sie erneut Tab und Enter, um fortzufahren.

Wiederholung des Passworts für den CouchDB-„admin“-Benutzer:

  • EXAMPLE_PASSWORD

Die Installation von CouchDB ist nun abgeschlossen. Im nächsten Schritt lernen Sie, wie Sie den CouchDB-Dienst verwalten können.

Schritt 3: Verwaltung des CouchDB-Dienstes

CouchDB starten

Verwenden Sie den folgenden Befehl, um den CouchDB-Dienst zu starten:

  $ sudo systemctl start couchdb

CouchDB stoppen

Um den CouchDB-Dienst zu beenden, führen Sie folgenden Befehl aus:

  $ sudo systemctl stop couchdb

CouchDB beim Systemstart aktivieren

Aktivieren Sie den CouchDB-Dienst, damit dieser automatisch beim Hochfahren des Systems gestartet wird:

  $ sudo systemctl enable couchdb

CouchDB neu starten

Verwenden Sie folgenden Befehl, um den CouchDB-Dienst neu zu starten:

  $ sudo systemctl restart couchdb

Schritt 4: Erstellen und Verwalten einer CouchDB-Datenbank

Sie können Datenbankabfragen auf Ihrem CouchDB-Server auf zwei Hauptwegen durchführen:

  • Die CouchDB HTTP API: CouchDB stellt eine JSON REST API bereit, über die Sie mit der Datenbank via HTTP-Anfragen kommunizieren können.
  • Die CouchDB Fauxton-Oberfläche: Eine webbasierte Verwaltungssoftware, mit der Sie Ihre CouchDB-Datenbanken bequem über den Browser verwalten.

4.1. Verwendung der CouchDB HTTP API

Sie können die CouchDB API mit verschiedenen HTTP-Clients ansprechen. Dieses Beispiel nutzt das Kommandozeilenprogramm curl unter Linux, um grundlegende Datenbankoperationen durchzuführen.

Serverinformationen abrufen

Führen Sie den folgenden Befehl aus, um Basisinformationen über Ihre CouchDB-Installation abzurufen. Ersetzen Sie EXAMPLE_PASSWORD durch Ihr tatsächliches Admin-Passwort:

  $ curl -X GET http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984

Beispielausgabe:

  {
    "couchdb":"Welcome",
    "version":"3.2.1",
    "git_sha":"244d428af",
    "uuid":"5e48b8f6a943805d36e7cf0534041d22",
    "features":[
       "access-ready",
       "partitioned",
       "pluggable-storage-engines",
       "reshard",
       "scheduler"
    ],
    "vendor":{
       "name":"The Apache Software Foundation"
    }
  }

Eine neue Datenbank erstellen

Um eine neue Datenbank namens demo zu erstellen, verwenden Sie diesen Befehl:

  $ curl -X PUT http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo

Beispielausgabe:

Alle Datenbanken auflisten

Um alle bestehenden Datenbanken auf Ihrem CouchDB-Server anzuzeigen, führen Sie folgenden Befehl aus:

  $ curl -X GET http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/_all_dbs

Erwartete Ausgabe:

  ["_replicator","_users","demo"]

4.2. Einfügen von Dokumenten in die Demo-Datenbank

Nun fügen Sie drei Dokumente in die Datenbank demo ein. Jedes Dokument wird im JSON-Format definiert und über eine eindeutige ID in der URL angesprochen (../demo/"1", ../demo/"2" und ../demo/"3").

Erstellen des ersten Dokuments

Führen Sie folgenden Befehl aus, um ein Dokument mit der ID „1“ anzulegen:

  $ curl -H 'Content-Type: application/json' -X PUT http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo/"1" -d '{"product_name":"LED BULB" , "retail_price" : 23.55}'

Erstellen des zweiten Dokuments

Erstellen Sie ein weiteres Dokument mit der ID „2“ durch folgenden Befehl:

  $ curl -H 'Content-Type: application/json' -X PUT http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo/"2" -d '{"product_name":"WIRELESS MOUSE" , "retail_price" : 45.20}'

Erstellen des dritten Dokuments

Fügen Sie nun ein drittes Dokument mit der ID „3“ hinzu:

  $ curl -H 'Content-Type: application/json' -X PUT http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo/"3" -d '{"product_name":"4G ROUTER" , "retail_price" : 89.50}'

Erwartete Antwort nach erfolgreichem Einfügen:

  {"ok":true,"id":"1","rev":"1-b626670af2e7ee1ae13ffba7ffe83819"}
  {"ok":true,"id":"2","rev":"1-d995adf7c62c3f1931f817f7a3f2685c"}
  {"ok":true,"id":"3","rev":"1-1ebf435bdc37cf3c5dd32aebdd377d46"}

Alle Dokumente anzeigen

Um alle in der demo-Datenbank gespeicherten Dokumente anzuzeigen, verwenden Sie folgenden Befehl:

  $ curl -X GET http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo/_all_docs?include_docs=true

Beispielausgabe:

  {
    "total_rows":3,
    "offset":0,
    "rows":[
       {
          "id":"1",
          "key":"1",
          "value":{
             "rev":"1-b626670af2e7ee1ae13ffba7ffe83819"
          },
          "doc":{
             "_id":"1",
             "_rev":"1-b626670af2e7ee1ae13ffba7ffe83819",
             "product_name":"LED BULB",
             "retail_price":23.55
          }
       },
       {
          "id":"2",
          "key":"2",
          "value":{
             "rev":"1-d995adf7c62c3f1931f817f7a3f2685c"
          },
          "doc":{
             "_id":"2",
             "_rev":"1-d995adf7c62c3f1931f817f7a3f2685c",
             "product_name":"WIRELESS MOUSE",
             "retail_price":45.2
          }
       },
       {
          "id":"3",
          "key":"3",
          "value":{
             "rev":"1-1ebf435bdc37cf3c5dd32aebdd377d46"
          },
          "doc":{
             "_id":"3",
             "_rev":"1-1ebf435bdc37cf3c5dd32aebdd377d46",
             "product_name":"4G ROUTER",
             "retail_price":89.5
          }
       }
    ]
  }

Ein bestimmtes Dokument abrufen

Um den Inhalt eines spezifischen Dokuments anhand seiner ID, zum Beispiel ID „1“, abzurufen, verwenden Sie folgenden Befehl:

  $ curl -X GET http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo/1

Beispielausgabe:

  {"_id":"1","_rev":"1-b626670af2e7ee1ae13ffba7ffe83819","product_name":"LED BULB","retail_price":23.55}

4.3. Dokumente in CouchDB aktualisieren und löschen

Ein Dokument aktualisieren

Um ein bestehendes Dokument zu aktualisieren, geben Sie die eindeutige Dokumenten-ID in der URL an (/demo/1/) und fügen Sie die aktuelle _rev-ID in den JSON-Body ein. Verwenden Sie dazu folgenden Befehl, um das Dokument „1“ zu aktualisieren:

  $ curl -H 'Content-Type: application/json' -X PUT http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo/1/ -d '{"product_name":"15 WATTS LED BULB" , "retail_price" : 40.89, "_rev":"1-b626670af2e7ee1ae13ffba7ffe83819"}'

Nach der Aktualisierung erzeugt CouchDB eine neue Revisions-ID:

  {"ok":true,"id":"1","rev":"2-387ee2644327cda7a202ed3ad1a9cad0"}

Aktualisiertes Dokument überprüfen

Holen Sie sich das aktualisierte Dokument erneut, um die vorgenommenen Änderungen zu überprüfen:

  $ curl -X GET http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo/1

Aktualisierte Produktdetails:

  {"_id":"1","_rev":"2-387ee2644327cda7a202ed3ad1a9cad0","product_name":"15 WATTS LED BULB","retail_price":40.89}

Hinweis: CouchDB unterstützt keine Teilaktualisierungen von Dokumenten. Jede Änderung erzeugt eine neue Version des Dokuments. Neue Felder können daher nur durch erneutes Übermitteln des gesamten modifizierten Inhalts hinzugefügt werden.

Ein Dokument löschen

Um ein Dokument zu löschen, müssen Sie sowohl die Dokumenten-ID als auch die zugehörige Revisions-ID in der URL angeben.

Revisions-ID abrufen

Ermitteln Sie die Revisions-ID des Dokuments mit der ID „3“ mit folgendem Befehl:

  $ curl -X GET http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo/3

Beispielausgabe:

  {"_id":"3","_rev":"1-1ebf435bdc37cf3c5dd32aebdd377d46","product_name":"4G ROUTER","retail_price":89.5}

Dokument löschen

Verwenden Sie folgenden Befehl, um das Dokument mit der ID „3“ und der ermittelten Revisions-ID zu löschen:

  $ curl -X DELETE http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo/3?rev=1-1ebf435bdc37cf3c5dd32aebdd377d46

Erfolgreiche Löschbestätigung:

  {"ok":true,"id":"3","rev":"2-37f9841ca9055574b880fdbf0278b170"}

Löschung überprüfen

Versuchen Sie, das gelöschte Dokument abzurufen, um sicherzustellen, dass es entfernt wurde:

  $ curl -X GET http://admin:EXAMPLE_PASSWORD@127.0.0.1:5984/demo/3

Erwarteter Fehlerausgabe:

  {"error":"not_found","reason":"deleted"}

4.4. Verwaltung von CouchDB über die Fauxton-Oberfläche

Um Ihren CouchDB-Server über die webbasierte Fauxton-Oberfläche zu verwalten, sind einige Konfigurationsänderungen erforderlich. Befolgen Sie dazu die folgenden Schritte.

Bearbeiten der CouchDB-Konfigurationsdatei

Öffnen Sie die Datei /opt/couchdb/etc/local.ini mit einem Texteditor:

  $ sudo nano /opt/couchdb/etc/local.ini

Suchen Sie die folgende Zeile in der Datei:

  ... [chttpd]
  ;port = 5984
  ;bind_address = 127.0.0.1
  ...

Entfernen Sie das führende Semikolon (;), um die Einstellung bind_address zu aktivieren, und ändern Sie den Wert von 127.0.0.1 auf 0.0.0.0. Dadurch lauscht CouchDB auf allen Netzwerkinterfaces:

  ... [chttpd]
  ;port = 5984
  bind_address = 0.0.0.0
  ...

Neustarten des CouchDB-Dienstes

Starten Sie CouchDB neu, um die aktualisierten Konfigurationseinstellungen zu übernehmen:

  $ sudo systemctl restart couchdb

Zugriff auf die Fauxton-Weboberfläche

Öffnen Sie einen Webbrowser und rufen Sie folgende URL auf. Ersetzen Sie dabei 192.0.2.1 durch die öffentliche IP-Adresse Ihres Servers:

  http://192.0.2.1:5984/_utils/

Die Anmeldeseite von Fauxton sollte erscheinen.

In Fauxton anmelden

Geben Sie Ihren Benutzernamen (admin) sowie Ihr Passwort (zum Beispiel EXAMPLE_PASSWORD) ein. Klicken Sie anschließend auf Log In, um sich anzumelden. Danach werden Sie zum Dashboard von Fauxton weitergeleitet.

Verwaltung von CouchDB mit Fauxton

Mit der Fauxton-Oberfläche können Sie grundlegende Verwaltungsaufgaben durchführen, wie das Erstellen, Abrufen, Aktualisieren und Löschen von Datenbanken und Dokumenten.

Fazit

Diese Anleitung zeigte Ihnen Schritt für Schritt, wie Sie Apache CouchDB auf einem Ubuntu 20.04-Server installieren und einrichten. Weitere Informationen zu den Funktionen und Möglichkeiten von CouchDB finden Sie auf der offiziellen Website der Apache CouchDB.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: