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:
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:
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.
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.