Cách cài đặt MongoDB trên CentOS 7
MongoDB là một database hướng tài liệu, miễn phí và open-souce . Nó được gọi là database NoSQL vì nó không dựa trên cấu trúc database quan hệ dựa trên bảng truyền thống. Thay vào đó, nó sử dụng các tài liệu giống JSON với các schemas động. Không giống như database quan hệ, MongoDB không yêu cầu schemas xác định trước trước khi bạn thêm dữ liệu vào database . Bạn có thể thay đổi schemas bất kỳ lúc nào và thường xuyên khi cần thiết mà không cần phải cài đặt một database mới với một schemas được cập nhật.Hướng dẫn này hướng dẫn bạn cài đặt MongoDB Community Edition trên server CentOS 7.
Yêu cầu
 Trước khi làm theo hướng dẫn này, hãy  đảm bảo  bạn có một  regular user , không phải root có  quyền  sudo . Bạn có thể tìm hiểu thêm về cách  cài đặt   user  có các  quyền  này từ hướng dẫn của  ta , Cách tạo  user  Sudo trên CentOS .
Bước 1 - Thêm Kho lưu trữ MongoDB
 Gói mongodb-org không tồn tại trong repository  lưu trữ mặc định cho CentOS. Tuy nhiên, MongoDB duy trì một repository  chuyên dụng. Hãy thêm nó vào  server  của  ta .
 Với trình soạn thảo vi , hãy tạo file  .repo cho yum , tiện ích quản lý gói cho CentOS:
- sudo vi /etc/yum.repos.d/mongodb-org.repo 
Sau đó, hãy truy cập phần Cài đặt trên Red Hat trong tài liệu của MongoDB và thêm thông tin repository cho bản phát hành ổn định mới nhất vào file :
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc Lưu và đóng file .
 Trước khi tiếp tục,  ta  nên  xác minh  repository  MongoDB tồn tại trong tiện ích yum . Lệnh repolist hiển thị danh sách các repository  đã bật:
- yum repolist 
Output. . . repo id                          repo name base/7/x86_64                    CentOS-7 - Base extras/7/x86_64                  CentOS-7 - Extras mongodb-org-3.2/7/x86_64         MongoDB Repository updates/7/x86_64                 CentOS-7 - Updates . . . Với MongoDB Repository , hãy tiến hành cài đặt.
Bước 2 - Cài đặt MongoDB
  Ta  có thể cài đặt gói mongodb-org từ repository  của bên thứ ba bằng cách  sử dụng trình  yum .
- sudo yum install mongodb-org 
Có hai Is this ok [y/N]:  dấu nhắc . Gói đầu tiên cho phép cài đặt các gói MongoDB và gói thứ hai nhập khóa GPG. Nhà xuất bản MongoDB ký phần mềm của họ và yum sử dụng khóa để xác nhận tính toàn vẹn của các gói đã  download . Tại mỗi  dấu nhắc , hãy nhập Y rồi nhấn ENTER .
 Tiếp theo, khởi động dịch vụ MongoDB với tiện ích systemctl :
- sudo systemctl start mongod 
Mặc dù  ta  sẽ không sử dụng chúng trong hướng dẫn này, bạn cũng có thể thay đổi trạng thái của dịch vụ MongoDB bằng các lệnh reload và stop .
 Lệnh reload yêu cầu quá trình mongod đọc file  cấu hình, /etc/mongod.conf và áp dụng bất kỳ thay đổi nào mà không yêu cầu khởi động lại.
- sudo systemctl reload mongod 
Các stop lệnh ngừng tất cả các hoạt mongod quy trình.
- sudo systemctl stop mongod 
Tiện ích systemctl không cung cấp kết quả sau khi thực hiện lệnh start , nhưng  ta  có thể kiểm tra xem dịch vụ đã bắt đầu bằng cách xem phần cuối của file  mongod.log bằng lệnh tail :
- sudo tail /var/log/mongodb/mongod.log 
Output. . . [initandlisten] waiting for connections on port 27017 Đầu ra của việc chờ kết nối xác nhận MongoDB đã khởi động thành công và ta có thể truy cập server database bằng MongoDB Shell:
- mongo 
Lưu ý: Khi chạy MongoDB Shell, bạn có thể thấy một cảnh báo như sau:
 ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
 MongoDB là một ứng dụng phân stream . Nó có thể  chạy  các quy trình bổ sung để xử lý  dung lượng  công việc của nó. Cảnh báo nêu rõ rằng để MongoDB hoạt động hiệu quả nhất, số lượng quy trình mà nó được phép quay phải bằng một nửa số file  mà nó có thể mở tại bất kỳ thời điểm nào. Để giải quyết cảnh báo, hãy thay đổi giá trị rlimit mềm của processes cho mongod bằng cách chỉnh sửa file  20-nproc.conf :
- sudo vi /etc/security/limits.d/20-nproc.conf 
Thêm dòng sau vào cuối file :
. . . mongod soft nproc 32000 Để có giới hạn mới cho MongoDB, hãy khởi động lại nó bằng tiện ích systemctl :
- sudo systemctl restart mongod 
Sau đó, khi bạn kết nối với MongoDB Shell, cảnh báo sẽ không còn tồn tại.
 Để tìm hiểu cách tương tác với MongoDB từ shell, bạn có thể xem lại  kết quả  của phương thức db.help() cung cấp danh sách các phương thức cho đối tượng db .
- db.help() 
OutputDB methods:     db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ]     db.auth(username, password)     db.cloneDatabase(fromhost)     db.commandHelp(name) returns the help for the command     db.copyDatabase(fromdb, todb, fromhost)     db.createCollection(name, { size : ..., capped : ..., max : ... } )     db.createUser(userDocument)     db.currentOp() displays currently executing operations in the db     db.dropDatabase() . . . Để tiến trình mongod chạy trong nền, nhưng thoát khỏi  shell  bằng lệnh exit :
- exit 
OutputBye Bước 3 - Xác minh Khởi động
 Vì ứng dụng hướng database  không thể hoạt động nếu không có database ,  ta  sẽ  đảm bảo  daemon MongoDB, mongod , sẽ khởi động cùng hệ thống.
  Sử dụng trình  systemctl để kiểm tra trạng thái khởi động của nó:
- systemctl is-enabled mongod; echo $? 
Đầu ra bằng 0 xác nhận một daemon được kích hoạt, mà ta muốn. Tuy nhiên, một xác nhận một daemon bị vô hiệu hóa sẽ không khởi động.
Output. . . enabled 0 Trong trường hợp daemon bị vô hiệu hóa, hãy  sử dụng trình  systemctl để kích hoạt nó:
- sudo systemctl enable mongod 
Bây giờ ta có một version MongoDB đang chạy sẽ tự động bắt đầu sau khi khởi động lại hệ thống.
Bước 4 - Nhập tập dữ liệu mẫu (Tùy chọn)
 Không giống như các  server  database  khác, MongoDB không đi kèm với dữ liệu trong database  test của nó. Vì  ta  không muốn thử nghiệm phần mềm mới sử dụng dữ liệu production ,  ta  sẽ  download  tập dữ liệu mẫu từ phần “ Nhập tập dữ liệu mẫu” của tài liệu “Bắt đầu với MongoDB”. Tài liệu JSON chứa một tập hợp các nhà hàng mà  ta  sẽ sử dụng để thực hành tương tác với MongoDB và tránh gây hại cho dữ liệu nhạy cảm.
Bắt đầu bằng cách chuyển vào một folder có thể ghi:
- cd /tmp 
Sử dụng lệnh curl và liên kết từ MongoDB để  download  file  JSON:
- curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json 
Lệnh mongoimport sẽ chèn dữ liệu vào database  thử nghiệm . Cờ --db xác định database  nào sẽ sử dụng trong khi cờ --collection chỉ định nơi thông tin sẽ được lưu trữ trong database  và cờ --file cho lệnh file  nào thực hiện hành động nhập:
- mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json 
Đầu ra xác nhận việc nhập dữ liệu từ file  primer-dataset.json :
Outputconnected to: localhost imported 25359 documents Với tập dữ liệu mẫu có sẵn, ta sẽ thực hiện một truy vấn đối với nó.
Chạy lại MongoDB Shell:
- mongo 
 Shell  chọn database  test theo mặc định, đó là nơi  ta  nhập dữ liệu  của bạn .
 Truy vấn bộ sưu tập nhà hàng bằng phương thức find() để hiển thị danh sách tất cả các nhà hàng trong tập dữ liệu. Vì bộ sưu tập chứa hơn 25.000 mục nhập, hãy sử dụng phương thức limit() tùy chọn limit() để giảm  kết quả  của truy vấn xuống một số được chỉ định. Ngoài ra, phương thức pretty() làm cho thông tin dễ đọc hơn với các dòng mới và thụt lề.
- db.restaurants.find().limit( 1 ).pretty() 
Output{     "_id" : ObjectId("57e0443b46af7966d1c8fa68"),     "address" : {         "building" : "1007",         "coord" : [             -73.856077,             40.848447         ],         "street" : "Morris Park Ave",         "zipcode" : "10462"     },     "borough" : "Bronx",     "cuisine" : "Bakery",     "grades" : [         {             "date" : ISODate("2014-03-03T00:00:00Z"),             "grade" : "A",             "score" : 2         },         {             "date" : ISODate("2013-09-11T00:00:00Z"),             "grade" : "A",             "score" : 6         },         {             "date" : ISODate("2013-01-24T00:00:00Z"),             "grade" : "A",             "score" : 10         },         {             "date" : ISODate("2011-11-23T00:00:00Z"),             "grade" : "A",             "score" : 9         },         {             "date" : ISODate("2011-03-10T00:00:00Z"),             "grade" : "B",             "score" : 14         }     ],     "name" : "Morris Park Bake Shop",     "restaurant_id" : "30075445" } Bạn có thể tiếp tục sử dụng tập dữ liệu mẫu để tự làm quen với MongoDB hoặc xóa nó bằng phương thức db.restaurants.drop() :
- db.restaurants.drop() 
Cuối cùng, thoát khỏi  shell  bằng lệnh exit :
- exit 
OutputBye Kết luận
 Trong hướng dẫn này,  ta  đã đề cập đến việc thêm repository  của bên thứ ba vào yum , cài đặt  server  database  MongoDB, nhập tập dữ liệu mẫu và thực hiện một truy vấn đơn giản.  Ta  hầu như không làm trầy xước bề mặt của các khả năng của MongoDB. Bạn có thể tạo database  của riêng mình với một số bộ sưu tập , điền vào chúng với nhiều tài liệu và bắt đầu xây dựng một ứng dụng mạnh mẽ.
Các tin liên quan
Cách cài đặt Nagios 4 và theo dõi server của bạn trên CentOS 72017-09-11
Cách cài đặt WordPress với Caddy trên CentOS 7
2017-08-04
Cách cài đặt và sử dụng Webmin trên CentOS 7
2017-07-13
Cách bật SFTP mà không cần quyền truy cập Shell trên CentOS 7
2017-06-01
Cách theo dõi cảnh báo Zabbix với Alerta trên CentOS 7
2017-05-31
Cách cài đặt Perlbrew và quản lý nhiều phiên bản Perl 5 trên CentOS 7
2017-05-31
Cách cấu hình NTP để sử dụng trong Dự án NTP Pool trên CentOS 7
2017-05-11
Cách lưu trữ một trang web với Caddy trên CentOS 7
2017-05-10
Cách cài đặt và cấu hình Ghost trên CentOS 7
2017-04-10
Cách cấu hình một client FreeIPA trên CentOS 7
2017-03-24
 

