Apache CouchDB là hệ thống cơ sở dữ liệu NoSQL hướng tài liệu mã nguồn mở, miễn phí được viết bằng Erlang. So với các cơ sở dữ liệu quan hệ khác, Apache CouchDB không lưu trữ dữ liệu và mối quan hệ trong các bảng. Apache CouchDB sử dụng JSON để lưu trữ dữ liệu giúp dữ liệu có khả năng mở rộng và dễ mô hình hóa hơn. Apache CouchDB cũng hỗ trợ API HTTP restful cho phép bạn tạo, chỉnh sửa và xóa tài liệu cơ sở dữ liệu.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt cơ sở dữ liệu Apache CouchDB NoSQL trên CentOS 8.
Kho lưu trữ CouchDB phụ thuộc vào kho lưu trữ EPEL, vì vậy bạn sẽ cần cài đặt kho lưu trữ EPEL trong hệ thống của mình. Bạn có thể cài đặt nó bằng lệnh sau:
Tiếp theo, tạo kho lưu trữ Apache CouchDB bằng lệnh bên dưới:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, cài đặt Apache CouchDB bằng lệnh sau:
Sau khi quá trình cài đặt hoàn tất thành công, bạn có thể tiến hành bước tiếp theo.
Đặt bind-address thành 0.0.0.0 để cho phép truy cập từ các địa chỉ IP bên ngoài và cũng đặt mật khẩu quản trị viên bên trong phần [admin] như được hiển thị bên dưới:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động dịch vụ CouchDB và cho phép nó khởi động khi khởi động:
Bây giờ bạn có thể xác minh trạng thái của dịch vụ CouchDB bằng lệnh sau:
Bạn sẽ nhận được đầu ra sau:
Bạn cũng có thể kiểm tra cổng lắng nghe CouchDB bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Bạn có thể tắt SELinux bằng cách chỉnh sửa tệp /etc/selinux/config:
Tìm dòng sau:
Và thay thế bằng dòng sau:
Lưu và đóng tệp. Sau đó, khởi động lại hệ thống của bạn để áp dụng các thay đổi:
Tiếp theo, bạn sẽ cần cho phép cổng 5984 thông qua firewalld. Bạn có thể cho phép bằng lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Bạn có thể sử dụng lệnh curl để kiểm tra CouchDB:
Nếu mọi thứ đều ổn, bạn sẽ nhận được kết quả sau:
Bạn cũng có thể truy cập Giao diện người dùng web CouchDB bằng URL http://your-server-ip:5984/_utils/. Bạn sẽ được chuyển hướng đến trang đăng nhập CouchDB:
Cung cấp tên người dùng, mật khẩu quản trị viên và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển CouchDB trong màn hình sau:
Để tạo cơ sở dữ liệu có tên testdb trong CouchDB, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
Để tạo cơ sở dữ liệu có tên userdb trong CouchDB, hãy chạy lệnh sau:
Bạn sẽ nhận được đầu ra sau:
Bạn cũng có thể xác minh cơ sở dữ liệu bằng lệnh curl như hiển thị bên dưới:
Bạn sẽ nhận được kết quả sau:
Bạn cũng có thể làm mới bảng điều khiển CouchDB để xem cơ sở dữ liệu trên trình duyệt web của bạn.
Nếu bạn muốn xóa cơ sở dữ liệu testdb, hãy chạy lệnh sau:
Bạn sẽ nhận được kết quả sau:
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt cơ sở dữ liệu Apache CouchDB NoSQL trên CentOS 8.
Điều kiện tiên quyết
- Máy chủ chạy CentOS 8.
- Mật khẩu gốc được thiết lập trên máy chủ của bạn.
Cài đặt Apache CouchDB
Theo mặc định, Apache CouchDB không khả dụng trong kho lưu trữ mặc định của CentOS 8. Vì vậy, bạn sẽ cần tạo kho lưu trữ Apache CouchDB trong hệ thống của mình.Kho lưu trữ CouchDB phụ thuộc vào kho lưu trữ EPEL, vì vậy bạn sẽ cần cài đặt kho lưu trữ EPEL trong hệ thống của mình. Bạn có thể cài đặt nó bằng lệnh sau:
Mã:
dnf install epel-release -y
Mã:
nano /etc/yum.repos.d/apache-couchdb.repo
Mã:
[bintray--apache-couchdb-rpm]name=bintray--apache-couchdb-rpmbaseurl=http://apache.bintray.com/couchdb-rpm/el$releasever/$basearch/gpgcheck=0repo_gpgcheck=0enabled=1
Mã:
dnf install couchdb -y
Cấu hình CouchDB
Bạn có thể cấu hình CouchDB ở chế độ độc lập hoặc ở chế độ cụm. Trong hướng dẫn này, chúng ta sẽ cấu hình máy chủ CouchDB ở chế độ đơn. Theo mặc định, CouchDB lắng nghe trên máy chủ cục bộ và không có tài khoản quản trị nào được tạo trong quá trình cài đặt. Vì vậy, bạn sẽ cần tạo một tài khoản quản trị cho CouchDB. Bạn có thể tạo nó bằng cách chỉnh sửa tệp local.ini:
Mã:
nano /opt/couchdb/etc/local.ini
Mã:
[chttpd]port = 5984bind_address = 0.0.0.0[admins]admin = password
Mã:
systemctl start couchdb
systemctl enable couchdb
Mã:
systemctl status couchdb
Mã:
? couchdb.service - Apache CouchDB Đã tải: đã tải (/usr/lib/systemd/system/couchdb.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) từ Sat 2020-04-11 07:40:47 EDT; 35 giây trước PID chính: 11992 (beam.smp) Nhiệm vụ: 43 (giới hạn: 26213) Bộ nhớ: 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_sup11/04 07:40:47 centos8 systemd[1]: Đã khởi động Apache CouchDB.
Mã:
netstat -pnltu | grep 5984
Mã:
tcp 0 0 0.0.0.0:5984 0.0.0.0:* LISTEN 11992/beam.smp
Cấu hình SELinux và Tường lửa
Theo mặc định, SELinux được bật trong hệ thống của bạn. Vì vậy, bạn nên tắt SELinux trong hệ thống của mình.Bạn có thể tắt SELinux bằng cách chỉnh sửa tệp /etc/selinux/config:
Mã:
nano /etc/selinux/config
Mã:
SELINUX=enforcing
Mã:
SELINUX=permissive
Tiếp theo, bạn sẽ cần cho phép cổng 5984 thông qua firewalld. Bạn có thể cho phép bằng lệnh sau:
Mã:
firewall-cmd --zone=public --permanent --add-port=5984/tcp
firewall-cmd --reload
Truy cập Giao diện người dùng web CouchDB
Lúc này, CouchDB đã được cài đặt và định cấu hình. Đã đến lúc xác nhận CouchDB có hoạt động hay không.Bạn có thể sử dụng lệnh curl để kiểm tra CouchDB:
Mã:
curl http://your-server-ip:5984/
Mã:
{"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"}}
Cung cấp tên người dùng, mật khẩu quản trị viên và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển CouchDB trong màn hình sau:
Làm việc với Cơ sở dữ liệu CouchDB
CouchDB cũng cho phép bạn tạo và xóa cơ sở dữ liệu bằng lệnh curl.Để tạo cơ sở dữ liệu có tên testdb trong CouchDB, hãy chạy lệnh sau:
Mã:
curl -u admin:password -X PUT http://your-server-ip:5984/testdb
Mã:
{"ok":true}
Mã:
curl -u admin:password -X PUT http://your-server-ip:5984/userdb
Mã:
{"ok":true}
Mã:
curl -u admin:password -X GET http://your-server-ip:5984/testdb
Mã:
{"db_name":"testdb","purge_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVB4LkGRoAFL_gSArkQGP2kSGpHqIoiwAtOgYRA","update_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVB4LkGRoAFL_gSArkQGP2kSG pHqIoiwAtOgYRA","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"}
Nếu bạn muốn xóa cơ sở dữ liệu testdb, hãy chạy lệnh sau:
Mã:
curl -u admin:password -X DELETE http://your-server-ip:5984/testdb
Mã:
{"ok":true}