Xin chào tất cả các bạn, mình là Quân, hôm nay mình sẽ hướng dẫn các bạn cài đặt một cơ sở dữ liệu NoSQL là MongoDB và một công cụ nữa dùng để quản lý hệ cơ sở dữ liệu MongoDB là MongoDB Compass nhé.
Những nội dung trong bài:
1. Cài đặt MongoDB trên Ubuntu (or Linux Mint).
1.1. Import MongoDB Repository
1.2. Cài đặt các gói MongoDB (mongoDB packages)
1.3. Khởi động MongoDB
1.4. Cấu hình và kết nối MongoDB
1.5. Gỡ cài đặt MongoDB
2. Giới thiệu và cài đặt MongoDB Compass.
1. Cài đặt MongoDB trên Ubuntu (or Linux Mint)
Sau một hồi góp nhặt kiến thức và giới thiệu khá dài ở bài trước là Giới thiệu NoSQL và MongoDB, bây giờ chúng ta cùng triển khai cài đặt thằng MongoDB này trên Ubuntu (16.04) nhé. Linux Mint (18.02) thì cách cài đặt cũng tương tự 😀
Quan trọng: Hướng dẫn trong bài này mình đảm bảo thành công đối với 2 phiên bản Ubuntu (16.04 LTS) và Linux Mint (18.02 Sonya), ở các phiên bản hệ điều hành cao hơn, có thể xảy ra những lỗi mới mà chưa có tài liệu để fix, vậy nên để tốt nhất thì các bạn vui lòng cài đúng phiên bản như mình đề xuất để tránh bị lỗi nhé.
Có một lưu ý thêm nữa là MongoDB nó không hỗ trợ 32 bit. Nên nó yêu cầu hệ điều hành của bạn phải là 64 bit. Tham khảo thêm ở đây: https://www.mongodb.com/blog/post/32-bit-limitations
1.1. Import MongoDB Repository
Các công cụ quản lý package của Ubuntu đều đảm bảo tính nhất quán và tính xác thực của các gói phần mềm bằng cách xác minh rằng chúng được ký bởi các khóa GPG. Nên đầu tiên chúng ta sẽ import khóa công khai GPG của MongoDB:
(Chú ý tất cả những dòng lệnh mà mình viết dưới đây đều là 1 dòng hết, cái nào dài quá thì phần hiển thị nó tự xuống dòng đấy chứ không phải 2 dòng đâu nhé.)
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Tạo file source list cho MongoDB (/etc/apt/sources.list.d/mongodb-org-3.4.list):
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Cập nhật local package repository:
sudo apt-get update
1.2. Cài đặt các gói MongoDB (mongoDB packages)
Chạy lệnh dưới đây để cài đặt phiên bản ổn định mới nhất của mongodb: (khuyến khích dùng)
sudo apt-get install -y mongodb-org
(Dòng lệnh trên sẽ tự động cài đặt hết các gói: mongodb-org, mongodb-org-server, mongodb-org-mongos, mongodb-org-shell và mongodb-org-tools.)
Ngoài ra, ở bước này, nếu như bạn không muốn cài phiên bản ổn định như trên thì sẽ phải chỉ định từng package cụ thể kèm với số phiên bản của chúng khi cài, ví dụ như thế này:
sudo apt-get install -y mongodb-org=3.4 mongodb-org-server=3.4 mongodb-org-shell=3.4 mongodb-org-mongos=3.4 mongodb-org-tools=3.4
1.3. Khởi động MongoDB
Quan trọng: đầu tiên các bạn tạo cho mình một thư mục có tên là data và một thư mục con tên là db bên trong thư mục home ở máy của bạn. Nếu không làm bước này thì lát nữa khi khởi động mongodb sẽ bị lỗi như hình bên dưới, mình đã từng mất nguyên cả tiếng đồng hồ vì cái lỗi này, phải gỡ mongodb đi rồi cài lại 🙁
Tạo 2 thư mục data và thư mục con db:
sudo mkdir -p /data/db/
Cho phép thư mục data và các thư mục con của nó có đủ quyền:
sudo chmod -R 775 /data/
Bây giờ cần tạo một file unit với tên là mongodb.service để cho systemd của máy biết cách quản lý các tài nguyên, cách khởi động hoặc ngừng service…vv
sudo touch /etc/systemd/system/mongodb.service
Chỉnh sửa file mongodb.service:
sudo nano /etc/systemd/system/mongodb.service
Dán đoạn mã dưới đây vào và lưu lại:
[Unit] Description=High-performance, schema-free document-oriented database After=network.target [Service] User=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf [Install] WantedBy=multi-user.target
Ok giờ mình reload lại cấu hình systemd manager:
sudo systemctl daemon-reload
Bật mongodb:
sudo systemctl start mongodb
Kiểm tra trạng thái mongodb:
sudo systemctl status mongodb
Kết quả trạng thái đã active (running) và các bạn cũng có thể thấy PID (process id), lượng Memory cũng như CPU mà mongodb đang tiêu thụ.
Ngoài ra có thể kiểm tra mongodb đã chạy trên port 27017 hay chưa bằng lệnh netstat:
netstat -plntu
Mặc định khi bạn reset máy rồi bật lại thì mongodb nó không tự động start, để tự động start mongodb khi bật máy thì các bạn chạy lệnh này:
sudo systemctl enable mongodb
Khi nào muốn ngừng chạy mongodb:
sudo systemctl stop mongodb
Hoặc restart mongodb:
sudo systemctl restart mongodb
1.4. Cấu hình và kết nối MongoDB
Mở MongoDB Shell trên máy của bạn bằng:
mongo
Chuyển qua database admin:
use admin
Tạo một tài khoản root user: cụ thể mình sẽ tạo tài khoản admin và mật khẩu là trungquandev
db.createUser({user:"admin", pwd:"trungquandev", roles:[{role:"root", db:"admin"}]})
Tiếp theo gõ exit hoặc Ctrl+C để thoát khỏi mongodb shell, sau đó khởi động lại mongodb:
exit
sudo systemctl restart mongodb
Connect lại mongodb với tài khoản vừa tạo:
mongo -u admin -p trungquandev --authenticationDatabase admin
Liệt kê toàn bộ database hiện có: (mặc định ban đầu sẽ có 2 cái DB là admin và local)
show dbs
1.5. Gỡ cài đặt MongoDB
Lưu ý là việc gỡ cài đặt này sẽ xóa toàn bộ cơ sở dữ liệu hiện tại của bạn nên hãy chắc chắn là các bạn đã export và backup hết database lại trước khi gỡ cài đặt mongodb nhé.
sudo apt-get purge mongodb-org*
(chờ nó chạy một thúc thì chọn Y để đồng ý gỡ cài đặt)
Sau đó xóa cơ sở dữ liệu và các tệp nhật ký.
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
2. Giới thiệu và cài đặt MongoDB Compass.
Ở trên mình sử dụng terminal để thao tác với mongodb, cụ thể là hiển thị toàn bộ các database bằng lệnh show dbs
. Ngoài ra còn nhiều thao tác nữa như tạo schema, thêm, sửa, xóa dữ liệu, đánh index…vv. Các bạn có thể tham khảo thêm ở đây:
https://docs.mongodb.com/manual/reference/method/
Mình thì ít dùng cách trên, vì thấy cũng khó nhìn, nên có tìm hiểu xem có tool giao diện nào làm việc với mongodb hay không, thì tìm được 3 cái khá hay. Một cái mất phí và hai cái miễn phí.
Cái thứ nhất (mất phí) là Studio 3T (tên ngày trước của nó là RoboMongo): chi phí sử dụng hàng năm của thằng này khá cao, mình cũng chưa có dùng đến nó nên không có nhận xét gì, chỉ đoán là “tiền nào của nấy thôi” 😀
Cái thứ hai (miễn phí và có thể tặng cho tác giả cốc coffee $5 thay lời cám ơn) đó là adminMongo: một công cụ quản lý hệ cơ sở dữ liệu MongoDB thông qua giao diện web. Mình chỉ giới thiệu về thằng này, sẽ có một bài chi tiết hướng dẫn cài đặt nó trên docker sau nhé.
Cái thứ ba (cũng miễn phí) và là cái mà mình sử dụng trong bài hôm nay là MongoDB Compass, hàng xịn từ trang chủ của MongoDB. Cài đặt nó cũng đơn giản lắm, 3 dòng lệnh thôi, các bạn mở terminal lên, chạy lần lượt:
– Dowload MongoDB Compass, phiên bản mới nhất ở thời điểm hiện tại mình viết bài là version 1.5.1, khi đọc bài này mà các bạn thấy bài của mình “cũ rích :v” rồi thì kiểm tra phiên bản mongodb compass ở đây nhé, xong nếu thấy có version mới thì comment giúp mình với, cảm ơn các bạn trước nha 😀
wget https://downloads.mongodb.com/compass/mongodb-compass_1.15.1_amd64.deb
– Insall MongoDB Compass:
sudo dpkg -i mongodb-compass_1.15.1_amd64.deb
– Run:
mongodb-compass
– Thành quả:
Next qua hết cái màn hình welcome đi nhé, bạn nào thích đọc thì đọc, mình lười lắm 😀 tiếp theo là đến màn hình kết nối mongodb.
Chọn phương thức xác thực là username với pasword rồi nhập thông tin tài khoản root mà ban nãy bác bạn vừa tạo ở phần 1, của mình Username: admin & Password: trungquandev, các thông số khác thì các bạn cứ để mặc định thôi, khi nào cần cấu hình nâng cao hơn thì tìm hiểu tiếp nhé. Sau đó Connect.
Vào tới màn hình bên trong này, sẽ xuất hiện 3 cái database là admin, config, local. Ủa nãy show dbs
có 2 cái admin với local thôi mà nhỉ, đào đâu ra cái config thế (confuse).
Câu trả lời đơn giản lắm, lệnh show dbs
chỉ hiển thị ra những database nào có dữ liệu thôi, do thằng config nó 0.0B kia nên nó không được hiện trên console, không tin thì các bạn có thể tự thêm 1 vài bản ghi linh tinh vào thằng config rồi chạy lại mongodb shell ban nãy là sẽ thấy khác nhé =))
Xong rồi đấy, còn mấy cái tạo database, crud bản ghi hay index …vv thì tự mò nhé các bạn, giao diện đồ họa như trên dễ làm không ấy mà 😀
Bài hướng dẫn này mình đã cùng các bạn cài đặt mongodb trên ubuntu (linux mint) và một công cụ quản lý cơ sở dữ liệu mongodb là mongodb compass. Cái phần cài đặt mongodb nó có nhiều bước, nên các bạn làm cẩn thận kẻo lỗi nhé, có lỗi gì thì comment dưới bài cho mình xem mình có thể giúp được gì không.
Cảm ơn các bạn đã xem bài viết của mình.
Xin chào và hẹn gặp lại các bạn ở những bài viết tiếp theo.
Best Regards – Trung Quân – Green Cat
Tài liệu tham khảo:
http://linuxforever.info/2017/04/13/how-to-install-mongodb-3-4-in-linux-mint-18-ubuntu-16-04/
https://hevodata.com/blog/install-mongodb-on-ubuntu/
https://docs.mongodb.com/compass/master/install/#install-on-ubuntu
“Thanks for awesome knowledges.”