Apache CouchDB NoSQL Database installeren op CentOS 8

Apache CouchDB is een gratis, open-source document-georiënteerd NoSQL databasesysteem, geschreven in Erlang. Vergeleken met andere relationele databanken slaat het geen gegevens en relaties op in tabellen. Het gebruikt JSON om gegevens op te slaan, wat het schaalbaarder maakt en gemakkelijk om de gegevens te modelleren. Het ondersteunt ook een restful HTTP API waarmee je databasedocumenten kunt maken, bewerken en verwijderen.

In deze zelfstudie leggen we uit hoe je de Apache CouchDB NoSQL databank op CentOS 8 kunt installeren.

Vereisten

  • Een server die CentOS 8 draait.
  • Een root wachtwoord is ingesteld op je server.

Installeer Apache CouchDB

Apache CouchDB is standaard niet beschikbaar in de CentOS 8 standaard repository. Je zult dus een Apache CouchDB repo in je systeem moeten aanmaken.

De CouchDB repository is afhankelijk van de EPEL repository, dus je zult de EPEL repo in je systeem moeten installeren. Je kunt het installeren met het volgende commando:

dnf install epel-release -y

Maak vervolgens de Apache CouchDB repo aan met het onderstaande commando:

nano /etc/yum.repos.d/apache-couchdb.repo

Voeg de volgende regels toe:

[bintray--apache-couchdb-rpm]
name=bintray--apache-couchdb-rpm
baseurl=http://apache.bintray.com/couchdb-rpm/el$releasever/$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1

Sla het bestand op en sluit het als je klaar bent. Installeer dan de Apache CouchDB met het volgende commando:

dnf install couchdb -y

Als de installatie met succes voltooid is, kun je verder gaan met de volgende stap.

Configureer CouchDB

Je kunt CouchDB in een stand-alone modus of in een geclusterde modus instellen. In deze zelfstudie zullen we de CouchDB server in de enkelvoudige modus instellen. Standaard luistert CouchDB op de localhost en bij de installatie wordt geen admin account aangemaakt. Je zult dus een admin account voor CouchDB moeten aanmaken. Je kunt die aanmaken door het bestand local.ini te bewerken:

nano /opt/couchdb/etc/local.ini

Stel het bind-adres in op 0.0.0.0 om toegang van externe IP adressen toe te staan en stel ook het admin wachtwoord in binnen de sectie [admin] zoals hieronder:

[chttpd]
port = 5984
bind_address = 0.0.0.0  

[admins]
admin = password

Sla het bestand op en sluit het als je klaar bent. Start dan de CouchDB service en zet hem aan om bij het opstarten te starten:

systemctl start couchdb
systemctl enable couchdb

Je kunt nu de status van de CouchDB dienst controleren met het volgende commando:

systemctl status couchdb

Je zou de volgende uitvoer moeten krijgen:

? couchdb.service - Apache CouchDB
   Loaded: loaded (/usr/lib/systemd/system/couchdb.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-04-11 07:40:47 EDT; 35s ago
 Main PID: 11992 (beam.smp)
    Tasks: 43 (limit: 26213)
   Memory: 36.4M
   CGroup: /system.slice/couchdb.service
           ??11992 /opt/couchdb/bin/../erts-9.3.3.14/bin/beam.smp -K true -A 16 -Bd -- -root /opt/couchdb/bin/.. -progname couchdb -- -home /o>
           ??12004 /opt/couchdb/bin/../erts-9.3.3.14/bin/epmd -daemon
           ??12023 erl_child_setup 1024
           ??12045 sh -s disksup
           ??12047 /opt/couchdb/bin/../lib/os_mon-2.4.4/priv/bin/memsup
           ??12048 /opt/couchdb/bin/../lib/os_mon-2.4.4/priv/bin/cpu_sup

Apr 11 07:40:47 centos8 systemd[1]: Started Apache CouchDB.

Je kunt ook de CouchDB luisterpoort controleren met het volgende commando:

netstat -pnltu | grep 5984

Je zou de volgende uitvoer moeten zien:

tcp        0      0 0.0.0.0:5984            0.0.0.0:*               LISTEN      11992/beam.smp

Configureer SELinux en Firewall

Standaard is SELinux ingeschakeld op je systeem. Het is dus aan te raden de SELinux in je systeem uit te schakelen.

Je kunt SELinux uitschakelen door het bestand /etc/selinux/config te bewerken:

nano /etc/selinux/config

Zoek de volgende regel:

SELINUX=enforcing

En vervang het door de volgende regel:

SELINUX=permissive

Bewaar en sluit het bestand. Herstart daarna je systeem om de veranderingen toe te passen:

Vervolgens moet je via firewalld poort 5984 toestaan. Je kunt het toestaan met het volgende commando:

firewall-cmd --zone=public --permanent --add-port=5984/tcp
firewall-cmd --reload

Als je klaar bent, kun je verder gaan met de volgende stap.

Toegang tot de CouchDB Web UI

Op dit punt is CouchDB geïnstalleerd en geconfigureerd. Het is tijd om te bevestigen dat CouchDB werkt of niet.

Je kunt het curl commando gebruiken om de CouchDB te controleren:

curl http://your-server-ip:5984/

Als alles in orde is, zou je de volgende uitvoer moeten krijgen:

{"couchdb":"Welcome","version":"3.0.0","git_sha":"03a77db6c","uuid":"d0406ea8f0b1a3f18020ec90e627ae35","features":["access-ready","partitioned","pluggable-storage-engines","reshard","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}

Je kunt ook de CouchDB web UI openen met de URL http://your-server-ip:5984/_utils/. Je wordt doorgestuurd naar de CouchDB login pagina:

CouchDB Inloggen

Geef je admin gebruikersnaam en wachtwoord op en klik op de knop Log in. Je zou het CouchDB dashboard moeten zien in het volgende scherm:

CouchDB Dashboard

Werken met de CouchDB Database

Met CouchDB kun je ook databanken maken en verwijderen met het curl commando.

Om in CouchDB een databank met de naam testdb aan te maken, voer je het volgende commando uit:

curl -u admin:password -X PUT http://your-server-ip:5984/testdb

Je zou de volgende uitvoer moeten zien:

{"ok":true}

Om in CouchDB een databank met de naam userdb aan te maken, voer je het volgende commando uit:

curl -u admin:password -X PUT http://your-server-ip:5984/userdb

Je zou de volgende uitvoer moeten krijgen:

{"ok":true}

Je kunt de database ook verifiëren met het curl commando zoals hieronder:

curl -u admin:password -X GET http://your-server-ip:5984/testdb

Je zou de volgende uitvoer moeten krijgen:

{"db_name":"testdb","purge_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVB4LkGRoAFL_gSArkQGP2kSGpHqIoiwAtOgYRA","update_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVB4LkGRoAFL_gSArkQGP2kSGpHqIoiwAtOgYRA","sizes":{"file":16700,"external":0,"active":0},"props":{},"doc_del_count":0,"doc_count":0,"disk_format_version":8,"compact_running":false,"cluster":{"q":2,"n":1,"w":1,"r":1},"instance_start_time":"0"}

Je kunt ook het CouchDB dashboard verversen om de databases in je webbrowser te bekijken.

Een databank maken in CouchDB

Als je de databank testdb wilt verwijderen, voer je het volgende commando uit:

curl -u admin:password -X DELETE http://your-server-ip:5984/testdb

Je zou de volgende uitvoer moeten krijgen:

{"ok":true}

Conclusie

Gefeliciteerd! Je hebt met succes Apache CouchDB geïnstalleerd op CentOS 8. Voor meer informatie kun je de Apache CouchDB Documentatie bezoeken.