CentOS 8.2部署CouchDB 3.3數據庫

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

什麼是Apache CouchDB?

CouchDB是由Apache Software Foundation開發的開源數據庫管理系統。它是在ErLang中開發的NoSQL文檔存儲數據庫。linux

CouchDB使用多種格式和協議來存儲,傳輸和處理其數據,它使用JSON(JavaScript對象表示法)存儲數據,使用MapReduce將JavaScript做爲查詢語言以及API的HTTPweb

與關係數據庫不一樣,CouchDB數據庫不在表中存儲數據和關係。相反,每一個數據庫都是獨立文檔的集合。每一個文檔都維護本身的數據和獨立的架構。shell

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鏈接。apache

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

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

[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/#login來訪問Fauxton Web界面。

【2】CouchDB登陸頁面,您能夠使用管理員用戶(咱們已經在local.ini文件中添加了該用戶)登陸Fauxton。

【3】登陸後,安裝程序將要求您將CouchDB配置爲單節點實例設置集羣。單擊「配置爲單節點」

【4】提供管理員用戶憑據,綁定IP地址和服務端口。點擊「配置節點」

【5】在CouchDB安裝結束時,它將要求您配置複製。忽略它,而後單擊左側邊欄上的「數據庫」按鈕。

您如今位於數據庫頁面。您能夠今後頁面建立所需的數據庫。

在這裏,您能夠看到在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 RelaxO'Reilly Media公司

相關文章
相關標籤/搜索