如何在 CentOS 8 上安裝 Apache CouchDB NoSQL 數據庫
Apache CouchDB 是一個免費的、開源的、面向文檔的 NoSQL 數據庫系統,用 Erlang 編寫。 與其他關係型數據庫相比,它不以表的形式存儲數據和關係。 它使用 JSON 來存儲數據,使其更具可擴展性並且更容易對數據建模。 它還支持安靜的 HTTP API,允許您創建、編輯和刪除數據庫文檔。
在本教程中,我們將解釋如何在 CentOS 8 上安裝 Apache CouchDB NoSQL 數據庫。
先決條件
- 服務器運行 CentOS 8。
- 根密碼在您的服務器上設置。
安裝 Apache CouchDB
默認情況下,CentOS 8 在默認存儲庫中不提供 Apache CouchDB。 因此,您需要在系統中創建一個 Apache CouchDB 存儲庫。
CouchDB 存儲庫依賴於 EPEL 存儲庫,因此您需要在系統中安裝 EPEL 存儲庫。 您可以使用以下命令進行安裝:
dnf install epel-release -y
接下來,使用以下命令創建 Apache CouchDB 存儲庫:
nano /etc/yum.repos.d/apache-couchdb.repo
添加以下行:
[bintray--apache-couchdb-rpm] name=bintray--apache-couchdb-rpm baseurl=https://apache.bintray.com/couchdb-rpm/el$releasever/$basearch/ gpgcheck=0 repo_gpgcheck=0 enabled=1
完成後保存並關閉文件。 然後,使用以下命令安裝 Apache CouchDB:
dnf install couchdb -y
安裝成功完成後,您可以繼續下一步。
配置 CouchDB
您可以在獨立模式或集群模式下配置 CouchDB。 在本教程中,我們將在單一模式下配置 CouchDB 服務器。 默認情況下,CouchDB 在本地主機上偵聽,並且在安裝過程中沒有創建管理員帳戶。 因此,您需要為 CouchDB 創建一個管理員帳戶。 您可以通過編輯文件 local.ini 來創建它:
nano /opt/couchdb/etc/local.ini
設置bind-address為0.0.0.0允許外部IP訪問,內部設置管理員密碼[admin]部分如下圖:
[chttpd] port = 5984 bind_address = 0.0.0.0 [admins] admin = password
完成後保存並關閉文件。 然後,啟動 CouchDB 服務並使其在啟動時啟動:
systemctl start couchdbsystemctl enable couchdb
現在您可以使用以下命令來驗證 CouchDB 服務的狀態:
systemctl status couchdb
您應該得到以下輸出:
? 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.
您還可以使用以下命令檢查 CouchDB 監聽端口:
netstat -pnltu | grep 5984
您應該看到以下輸出:
tcp 0 0 0.0.0.0:5984 0.0.0.0:* LISTEN 11992/beam.smp
配置 SELinux 和防火牆
默認情況下,系統中啟用了 SELinux。 因此建議您在系統中禁用 SELinux。
您可以通過編輯 /etc/selinux/config 文件來禁用 SELinux:
nano /etc/selinux/config
找到以下行:
SELINUX=enforcing
並且,將其替換為以下行:
SELINUX=permissive
保存並關閉文件。 然後,重新啟動系統以應用更改:
接下來,您需要通過 firewalld 允許端口 5984。 您可以使用以下命令允許它:
firewall-cmd --zone=public --permanent --add-port=5984/tcpfirewall-cmd --reload
完成後,您可以繼續下一步。
訪問 CouchDB Web UI
至此,CouchDB 已經安裝並配置完畢。 現在是時候確認 CouchDB 是否正常工作了。
您可以使用 curl 命令檢查 CouchDB:
curl https://your-server-ip:5984/
如果一切正常,您應該得到以下輸出:
{"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"}}
您還可以使用 URL https://your server-ip:5984/_utils/ 訪問 CouchDB Web UI。 您將被重定向到 CouchDB 登錄頁面:
提供您的管理員用戶名、密碼,然後單擊登錄按鈕。 您應該在以下屏幕中看到 CouchDB 儀表板:
使用 CouchDB 數據庫
CouchDB 還允許您使用 curl 命令創建和刪除數據庫。
要在 CouchDB 中創建名為 testdb 的數據庫,請運行以下命令:
curl -u admin:password -X PUT https://your-server-ip:5984/testdb
您應該看到以下輸出:
{"ok":true}
要在 CouchDB 中創建一個名為 userdb 的數據庫,請運行以下命令:
curl -u admin:password -X PUT https://your-server-ip:5984/userdb
您應該得到以下輸出:
{"ok":true}
您還可以使用 curl 命令驗證數據庫,如下所示:
curl -u admin:password -X GET https://your-server-ip:5984/testdb
您應該得到以下輸出:
{"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"}
您還可以刷新 CouchDB 儀表板以在 Web 瀏覽器上查看數據庫。
如果要刪除數據庫testdb,運行以下命令:
curl -u admin:password -X DELETE https://your-server-ip:5984/testdb
您應該得到以下輸出:
{"ok":true}
綜上所述
恭喜! 您已經在 CentOS 8 上成功安裝了 Apache CouchDB。更多信息,您可以訪問 Apache。沙發數據庫文檔。