1. 程式人生 > 資料庫 >CentOS 8.2部署CouchDB 3.3資料庫的方法

CentOS 8.2部署CouchDB 3.3資料庫的方法

CentOS 8.2部署CouchDB 3.3資料庫的方法

CouchDB是一個開源的,面向文件的NoSQL資料庫。在本文中,您將學習如何在CentOS 8上安裝Apache CouchDB。

什麼是Apache CouchDB?

CouchDB是由Apache Software Foundation開發的開源資料庫管理系統。它是在ErLang中開發的NoSQL文件儲存資料庫。

CouchDB使用多種格式和協議來儲存,傳輸和處理其資料,它使用JSON(JavaScript物件表示法)儲存資料,使用MapReduce將JavaScript作為查詢語言以及API的HTTP。

與關係資料庫不同,CouchDB資料庫不在表中儲存資料和關係。相反,每個資料庫都是獨立文件的集合。每個文件都維護自己的資料和獨立的架構。

CouchDB軟體包括一個本地Web介面,即用於管理CouchDB資料庫伺服器的Fauxton。

  • CPU:3.4 GHz(2核)
  • 記憶體:2 GB
  • 儲存空間:20 GB
  • 作業系統:CentOS 8.2
  • 主機名:couchdb.lianglab.cn
  • IP地址:192.168.6.200/24

第一步:更新CentOS 8軟體包

通過使用ssh客戶端,以root使用者身份與couchdb.lianglab.cn連線。

最佳做法是在CentOS 8作業系統上安裝任何新東西之前,先更新已安裝的軟體包。

使用dnf命令更新CentOS 8中已安裝的軟體包。

[root@solrserver ~]# hostnamectl set-hostname couchdb.lianglab.cn

[root@couchdb ~]# dnf -y update
...
Upgraded:
 NetworkManager-1:1.22.8-5.el8_2.x86_64
 NetworkManager-libnm-1:1.22.8-5.el8_2.x86_64
 NetworkManager-team-1:1.22.8-5.el8_2.x86_64
 NetworkManager-tui-1:1.22.8-5.el8_2.x86_64
 bind-export-libs-32:9.11.13-5.el8_2.x86_64
 ca-certificates-2020.2.41-80.0.el8_2.noarch
 dbus-1:1.12.8-10.el8_2.x86_64
 dbus-common-1:1.12.8-10.el8_2.noarch
 dbus-daemon-1:1.12.8-10.el8_2.x86_64
 dbus-libs-1:1.12.8-10.el8_2.x86_64
 dbus-tools-1:1.12.8-10.el8_2.x86_64
 dnf-4.2.17-7.el8_2.noarch
 dnf-data-4.2.17-7.el8_2.noarch
 gnutls-3.6.8-11.el8_2.x86_64
 grub2-common-1:2.02-87.el8_2.noarch
 grub2-pc-1:2.02-87.el8_2.x86_64
 grub2-pc-modules-1:2.02-87.el8_2.noarch
 grub2-tools-1:2.02-87.el8_2.x86_64
 grub2-tools-efi-1:2.02-87.el8_2.x86_64
 grub2-tools-extra-1:2.02-87.el8_2.x86_64
 grub2-tools-minimal-1:2.02-87.el8_2.x86_64
 iptables-1.8.4-10.el8_2.1.x86_64
 iptables-ebtables-1.8.4-10.el8_2.1.x86_64
 iptables-libs-1.8.4-10.el8_2.1.x86_64
 kernel-tools-4.18.0-193.14.2.el8_2.x86_64
 kernel-tools-libs-4.18.0-193.14.2.el8_2.x86_64
 libdnf-0.39.1-6.el8_2.x86_64
 libnghttp2-1.33.0-3.el8_2.1.x86_64
 microcode_ctl-4:20191115-4.20200609.1.el8_2.x86_64
 open-vm-tools-11.0.5-3.el8.x86_64
 python3-dnf-4.2.17-7.el8_2.noarch
 python3-hawkey-0.39.1-6.el8_2.x86_64
 python3-libdnf-0.39.1-6.el8_2.x86_64
 python3-perf-4.18.0-193.14.2.el8_2.x86_64
 selinux-policy-3.14.3-41.el8_2.5.noarch
 selinux-policy-targeted-3.14.3-41.el8_2.5.noarch
 systemd-239-31.el8_2.2.x86_64
 systemd-libs-239-31.el8_2.2.x86_64
 systemd-pam-239-31.el8_2.2.x86_64
 systemd-udev-239-31.el8_2.2.x86_64
 yum-4.2.17-7.el8_2.noarch

Installed:
 kernel-4.18.0-193.14.2.el8_2.x86_64
 kernel-core-4.18.0-193.14.2.el8_2.x86_64
 kernel-modules-4.18.0-193.14.2.el8_2.x86_64

Removed:
 kernel-4.18.0-147.5.1.el8_1.x86_64
 kernel-core-4.18.0-147.5.1.el8_1.x86_64
 kernel-modules-4.18.0-147.5.1.el8_1.x86_64
Complete!

升級軟體包後,請驗證新的核心版本。

[root@couchdb ~]# uname -r
4.18.0-193.el8.x86_64
[root@couchdb ~]# cat /etc/redhat-release 
CentOS Linux release 8.2.2004 (Core) 

第二步:CentOS 8上安裝EPEL Yum儲存庫

CouchDB資料庫伺服器需要一些標準yum儲存庫中不可用的軟體包,因此,我們在CentOS 8伺服器上安裝了EPEL(企業Linux的額外軟體包) yum儲存庫。

[root@couchdb ~]# dnf install -y epel-release
================================================================================
 Package    Architecture Version   Repository  Size
================================================================================
Installing:
 epel-release   noarch   8-8.el8   extras   23 k

Transaction Summary
================================================================================
Install 1 Package

Total download size: 23 k
Installed size: 32 k
Downloading Packages:
epel-release-8-8.el8.noarch.rpm     34 kB/s | 23 kB  00:00
--------------------------------------------------------------------------------
Total           7.4 kB/s | 23 kB  00:03
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
 Preparing  :              1/1
 Installing  : epel-release-8-8.el8.noarch       1/1
 Running scriptlet: epel-release-8-8.el8.noarch       1/1
 Verifying  : epel-release-8-8.el8.noarch       1/1

Installed:
 epel-release-8-8.el8.noarch

Complete!

第三步:CentOS 8上安裝CouchDB Yum儲存庫

可以通過源或RPM軟體包將CouchDB資料庫安裝在CentOS 8上。基於RPM的安裝非常簡單明瞭,因此我們從RPM軟體包中安裝CouchDB。

CouchDB資料庫RPM軟體包通過它們自己的正式yum儲存庫分發。因此,我們在CentOS 8作業系統中添加了CouchDB yum儲存庫。

【1】 使用vim編輯器建立一個repo檔案

[root@couchdb ~]# vi /etc/yum.repos.d/bintray-apache-couchdb-rpm.repo

以下內容新增到到檔案。

[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

【2】新新增的reop檔案yum儲存庫構建快取

[root@couchdb ~]# dnf makecache
CentOS-8 - Base - mirrors.tongdun.cn              
CentOS-8 - Extras - mirrors.tongdun.cn              
CentOS-8 - AppStream - mirrors.tongdun.cn             
bintray--apache-couchdb-rpm                
Extra Packages for Enterprise Linux 8 - x86_64            
Extra Packages for Enterprise Linux 8 - x86_64 - Debug          
Extra Packages for Enterprise Linux 8 - x86_64 - Source         
Metadata cache created.
[root@couchdb ~]# 

第四步:CentOS 8上安裝Apache CouchDB

【1】我們已經建立了所需的yum儲存庫。現在,我們可以使用dnf命令安裝CouchDB軟體。

[root@couchdb ~]# dnf list couchdb
Last metadata expiration check: 0:00:39 ago on Fri 25 Dec 2020 10:42:23 PM CST.
Available Packages
couchdb.x86_64     3.1.1-1.el8     bintray--apache-couchdb-rpm
[root@couchdb ~]# dnf install -y couchdb
Last metadata expiration check: 0:00:52 ago on Fri 25 Dec 2020 10:42:23 PM CST.
Dependencies resolved.
==========================================================================================
 Package  Architecture Version   Repository       Size
==========================================================================================
Installing:
 couchdb  x86_64  3.1.1-1.el8  bintray--apache-couchdb-rpm   24 M

Transaction Summary
==========================================================================================
Install 1 Package

Total download size: 24 M
Installed size: 51 M
Downloading Packages:
couchdb-3.1.1-1.el8.x86_64.rpm       3.5 MB/s | 24 MB  00:06 
------------------------------------------------------------------------------------------
Total              3.5 MB/s | 24 MB  00:06  
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
 Preparing  :                 1/1 
 Running scriptlet: couchdb-3.1.1-1.el8.x86_64          1/1 
 Installing  : couchdb-3.1.1-1.el8.x86_64          1/1 
 Running scriptlet: couchdb-3.1.1-1.el8.x86_64          1/1 
 Verifying  : couchdb-3.1.1-1.el8.x86_64          1/1 
Installed products updated.

Installed:
 couchdb-3.1.1-1.el8.x86_64                

Complete!

CouchDB軟體安裝在/opt/couchdb目錄中。

【2】使用vi編輯器編輯CouchDB配置檔案。

[root@couchdb ~]# vi /opt/couchdb/etc/local.ini

【3】建立一個管理員使用者併為其設定一個強密碼。您必須找到[admins]部分,然後在此部分下新增一個admin使用者,可以在此處新增任意數量的管理員使用者。

修改之前
[admins]
;admin = mysecretpassword

修改之後
[admins]
admin = lianglab@Pssword

不用擔心純文字密碼,因為CouchDB在服務啟動時會自動將其轉換為雜湊值。

【4】CouchDB僅在localhost介面上執行其Web UI(即Fauxton)。但是要從網路訪問它,我們也需要在其他網路介面上執行它。

找到[chttpd]部分並在其中設定以下指令。

修改之前
[chttpd]
;port = 5984
;bind_address = 127.0.0.1
[chttpd]
port = 5984
bind_address = 0.0.0.0

【5】啟動CouchDB服務。

[root@couchdb ~]# systemctl enable --now couchdb.service
Created symlink /etc/systemd/system/multi-user.target.wants/couchdb.service → /usr/lib/systemd/system/couchdb.service.

【6】檢視服務狀態和監控埠資訊

[root@couchdb ~]# systemctl status couchdb.service
● couchdb.service - Apache CouchDB
 Loaded: loaded (/usr/lib/systemd/system/couchdb.service; enabled; vendor preset: disab>
 Active: active (running) since Fri 2020-12-25 23:00:03 CST; 1min 43s ago
 Main PID: 109712 (beam.smp)
 Tasks: 40 (limit: 49642)
 Memory: 34.3M
 CGroup: /system.slice/couchdb.service
   ├─109712 /opt/couchdb/bin/../erts-9.3.3.14/bin/beam.smp -K true -A 16 -Bd -- ->
   ├─109737 /opt/couchdb/bin/../erts-9.3.3.14/bin/epmd -daemon
   └─109756 erl_child_setup 65536

Dec 25 23:00:03 couchdb.lianglab.cn systemd[1]: Started Apache CouchDB.

[root@couchdb ~]# netstat -anptl | grep 5984
tcp  0  0 0.0.0.0:5984   0.0.0.0:*    LISTEN  109712/beam.smp 

【7】Linux防火牆中允許埠5984/tcp。

CouchDB服務使用預設埠5984。因此,我們需要允許從網路到該埠的傳入流量。

[root@couchdb ~]# firewall-cmd --permanent --add-port=5984/tcp
success
[root@couchdb ~]# firewall-cmd --reload
success

第五步:訪問CouchDB Web UI

【1】成功啟動CouchDB服務後,我們現在可以通過在Web瀏覽器中開啟URL http://192.168.6.200:5984/_utils/來訪問Fauxton Web介面。

CentOS 8.2部署CouchDB 3.3資料庫的方法

【2】CouchDB登入頁面,您可以使用管理員使用者(我們已經在local.ini檔案中添加了該使用者)登入Fauxton。

CentOS 8.2部署CouchDB 3.3資料庫的方法

【3】登入後,安裝程式將要求您將CouchDB配置為單節點例項或設定叢集。單擊“配置為單節點”。

CentOS 8.2部署CouchDB 3.3資料庫的方法

【4】提供管理員使用者憑據,繫結IP地址和服務埠。點選“配置節點”。

CentOS 8.2部署CouchDB 3.3資料庫的方法

【5】在CouchDB安裝結束時,它將要求您配置複製。忽略它,然後單擊左側邊欄上的“資料庫”按鈕。

CentOS 8.2部署CouchDB 3.3資料庫的方法

您現在位於資料庫頁面。您可以從此頁面建立所需的資料庫。

在這裡,您可以看到在CouchDB安裝過程中建立的兩個系統資料庫以及我們為測試目的而建立的兩個使用者資料庫。

除了Fauxton Web介面之外,我們還可以使用curl命令將HTTP命令傳送到CouchDB例項。

【6】建立一個CouchDB資料庫,我們可以使用以下命令。

[root@couchdb ~]# curl -u admin:lianglab@Pssword -X PUT http://127.0.0.1:5984/lianglab
{"ok":true}

[root@couchdb ~]# curl -u admin:lianglab@Pssword -X GET http://127.0.0.1:5984/lianglab
{"db_name":"lianglab","purge_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVB4LkGRoAFL_gSArkQGP2kSGpHqIoiwAtOgYRA","update_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVB4LkGRoAFL_gSArkQGP2kSGpHqIoiwAtOgYRA","sizes":{"file":16700,"external":0,"active":0},"props":{"partitioned":true},"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"}
[root@couchdb ~]# 

【7】要列出我們的CouchDB伺服器上的所有資料庫,我們可以傳送以下命令。

[root@couchdb ~]# curl -u admin:lianglab@Pssword -X GET http://127.0.0.1:5984/_all_dbs
["_replicator","_users","lianglab"]

結論:

我們已經成功地安裝了Apache CouchDB 3.3的在CentOS 8理解基礎知識和CouchDB 的資料庫的架構,我們建議你應該購買和閱讀CouchDB: The Definitive Guide: Time to Relax由O'Reilly Media公司。

到此這篇關於CentOS 8.2部署CouchDB 3.3資料庫的文章就介紹到這了,更多相關CentOS 8.2部署CouchDB 資料庫內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!