Vậy là bạn đã quyết định sử dụng MongoDB, một công cụ tuyệt vời alternative to MariaDB để xây dựng ứng dụng ngăn xếp MERN, nền tảng phân tích hoặc bất kỳ hệ thống dựa trên tài liệu nào, nhưng lại gặp khó khăn với các dòng lệnh Linux cũ tốt và vô số lỗi thiết bị đầu cuối.
Tuy nhiên, đừng lo lắng vì hướng dẫn này cung cấp mọi thứ bạn cần biết từ A đến Z để cài đặt MongoDB trên Ubuntu.
sử dụng MongoDB X.Y.Z phiên bản. 8.0 là một lớn lao loạt phát hành, và 8.2 là một người vị thành niên phát hành trong chu kỳ 8.0 đó. Các bản phát hành nhỏ bổ sung các tính năng trong cùng một chu kỳ chính và bắt đầu từ 8.0, cũng được cung cấp để cài đặt tại chỗ cho các trường hợp sử dụng cụ thể (ví dụ: Tìm kiếm và Tìm kiếm Vector). Hỗ trợ MongoDB 8.0 trên Ubuntu 24.04 (Cao quý), 22.04 (Jammy) và 20.04 (Tiêu điểm) trên các hệ thống 64 bit, có hỗ trợ ARM64 trên các nền tảng được chọn.
Điều kiện tiên quyết của GnuPG và Curl
Trước khi cài đặt chính thức mongodb-org gói, Ubuntu yêu cầu hai điều kiện tiên quyết: GnuPG Và uốn cong. Những công cụ này cấp cho Ubuntu quyền tải xuống MongoDB, vì Ubuntu có quyền riêng mongodb gói không được MongoDB Inc. duy trì và xung đột với gói chính thức mongodb-org bưu kiện. Nếu bạn đã cài đặt mongodb đảm bảo gỡ cài đặt nó.
Tiếp theo, chạy lệnh sudo apt-get cài đặt gnupg cuộn tròn. Curl là một công cụ để tải xuống các tệp từ internet và cần thiết để lấy khóa bảo mật của MongoDB. GnuPG là thứ Ubuntu sử dụng để xác minh tính xác thực của phần mềm. Nếu thiếu GnuPG, Ubuntu không thể xác minh các gói MongoDB.
Đảm bảo thiết bị đầu cuối của bạn đã cài đặt thành công GnuPG và Curl. Nếu có, nó sẽ trông như thế này:
Nhập khóa GPG MongoDB
Trình quản lý gói của Ubuntu, APT, sử dụng khóa GPG để xác minh các gói trước khi cài đặt. Nếu không có khóa GPG này, Ubuntu không cho phép thêm kho lưu trữ của MongoDB. Nhập lệnh sau vào terminal của bạn để thêm khóa:
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
Nếu nó hoạt động, đầu ra terminal của bạn sẽ trông như thế này:
Nói một cách đơn giản, lệnh này tải xuống chữ ký bảo mật của MongoDB, chuyển đổi nó thành định dạng mà Ubuntu có thể đọc và lưu nó vào thư mục hệ thống bảo mật. Dưới đây là bảng phân tích từng phần dòng lệnh:
- URL cuộn tròn -fsSL tải xuống khóa chính thức của MongoDB
- –bạn thân mến chuyển đổi khóa từ định dạng văn bản thành nhị phân để Ubuntu hiểu
- -o /usr/share/keyrings/mongodb-server-8.0.gpg lưu tệp nhị phân vào thư mục nơi Ubuntu lưu trữ các khóa đáng tin cậy
Nếu bạn khớp mọi dòng lệnh một cách hoàn hảo, khóa GPG công khai sẽ được thêm mà không gặp bất kỳ sự cố nào. Tuy nhiên, một số người dùng gặp phải sự cố khi tải xuống MongoDB do khóa GPG không khớp. Các lỗi như:
NO_PUBKEY
The following signatures couldn't be verified
public key not available
Xảy ra khi bạn không tuân theo các lệnh chính xác của GPG trước đó và thay vào đó hãy sử dụng khóa apt sudo bởi vì Ubuntu hiện đại không khuyến khích điều đó.
Thêm kho lưu trữ MongoDB
Việc thêm Kho lưu trữ của MongoDB sẽ tạo một tệp cho Ubuntu biết rằng các gói MongoDB đang hoạt động tại một địa chỉ internet cụ thể. Tạo tập tin danh sách tại /etc/apt/sources.list.d/mongodb-org-8.0.list bằng cách viết dòng kho lưu trữ vào đó bằng cách sử dụng tiếng vang … | Sudo tee …
Đây là lúc nó trở nên phức tạp, vì các phiên bản Ubuntu khác nhau yêu cầu một biến thể khác của lệnh này. Bây giờ chúng ta sẽ xem xét cách nhập tệp danh sách trên ba phiên bản Ubuntu đã đề cập trước đó.
Ubuntu 24.04 (Cao quý)
Để tạo tệp danh sách trên Ubuntu 24.04, chỉ cần đặt echo “deb [ Arch=AMD64,arm64 signature-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu Noble/mongodb-org/8.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list trên thiết bị đầu cuối của bạn.
Điều này có thể trông khó hiểu, nhưng đừng lo lắng. Sau khi chúng tôi chia lệnh thành nhiều phần, nó sẽ rất rõ ràng.
- tiếng vọng in văn bản
- /etc/apt/sources.list.d là thư mục trong đó Ubuntu lưu trữ các định nghĩa nguồn phần mềm. Mỗi tập tin với .danh sách định dạng bên trong thư mục trỏ Ubuntu đến một vị trí cụ thể để tải xuống phần mềm từ đó
- Theo mặc định, bạn không thể viết bất cứ điều gì vào các thư mục hệ thống với tư cách là người dùng bình thường. phát bóng cấp cho người dùng quyền đặc biệt để ghi văn bản vào các tập tin hệ thống trong khi sử dụng sudo
- cao quý là tên mã của Ubuntu 24.04. Mọi phiên bản Ubuntu đều có tên mã như:
| Phiên bản | Tên mã |
| 20.04 | Tiêu điểm |
| 22.04 | Jammy |
| 24.04 | Cao quý |
Nếu bạn không khớp phiên bản Ubuntu của mình với dòng lệnh phù hợp, Ubuntu sẽ không nhận dạng được kho lưu trữ của MongoDB.
Ubuntu 22.04 (Jammy)
Việc thêm file list vào Ubuntu Jammy trông giống nhau nhưng phải nhập dòng lệnh trong khi thay thế cao quý với mứt, như thế này:
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Hãy đảm bảo rằng đó là phiên bản phù hợp với phiên bản Ubuntu của bạn, nếu không nó sẽ lại bị lỗi.
Ubuntu 20.04 (Tiêu điểm)
Thực hiện theo các bước tương tự ở đây, nhưng thay vì cao quý or mứt, cho vào tiêu điểm:
echo “deb [ Arch=AMD64,arm64 signature-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focus/mongodb-org/8.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Bây giờ với kho lưu trữ đã được thiết lập, bạn có thể tiến hành cài đặt mongodb-org.
Làm mới cơ sở dữ liệu gói
Bây giờ kho lưu trữ đã được Ubuntu nhận dạng, bạn cần tải lại cơ sở dữ liệu gói bên trong nó, vì vậy từ giờ trở đi, nó cũng bao gồm cả MongoDB. Đưa ra lệnh được đề cập dưới đây:
sudo apt-get update
Lệnh này vẫn giữ nguyên trên mọi phiên bản Ubuntu và nếu bị bỏ qua, Ubuntu sẽ không bao gồm MongoDB. Nếu lệnh thực hiện công việc của nó, đầu ra cuối cùng của bạn sẽ là:
Bây giờ, sau khi tải lại cơ sở dữ liệu gói của bạn, đã đến lúc tải xuống các gói MongoDB.
Cài đặt máy chủ cộng đồng MongoDB
Có nhiều bản phát hành MongoDB khác nhau để cài đặt, nhưng người dùng có xu hướng sử dụng phiên bản ổn định mới nhất vì nó thích hợp hơn. Để cài đặt phiên bản ổn định mới nhất, hãy chạy cài đặt sudo apt-get -y mongodb-org
Ubuntu hiện đã tải xuống các gói MongoDB, cài đặt chúng, tạo tài khoản người dùng MongoDB và thư mục dữ liệu, đồng thời đăng ký MongoDB làm dịch vụ hệ thống. Đến bây giờ, chúng tôi đã trình bày cách tải xuống MongoDB trên Ubuntu. Bây giờ chúng ta hãy bắt đầu nó.
Cách khởi động MongoDB
Bây giờ, để chạy MongoDB, chúng ta cần thông báo cho người quản lý dịch vụ của Ubuntu, “systemd”, nhận ra MongoDB là dịch vụ nền và để thực hiện điều đó, bạn cần nhập lệnh sau vào thiết bị đầu cuối của mình:
sudo systemctl start mongod
Nếu lệnh thực hiện công việc của nó, Ubuntu sẽ mở MongoDB dưới dạng ứng dụng nền. Tuy nhiên, nếu lệnh không thực hiện được công việc của nó, bạn có thể gặp lỗi tương tự như Không khởi động được mongod.service.
Điều này có thể xảy ra do một số vấn đề phổ biến:
- Lỗi tập tin cấu hình in /etc/mongod.conf (Lỗi thụt lề YAML là phổ biến)
- Xung đột cổng (cổng 27017 đã được sử dụng)
- Vấn đề về quyền trên các thư mục dữ liệu hoặc nhật ký (var/lib/mongodb hoặc var/log/mongodb)
- Đĩa đầy or trạng thái hệ thống tập tin bị hỏng
Ba lệnh để chẩn đoán sự cố
Thật dễ dàng để nói điều gì có thể xảy ra với cấu hình của bạn mà MongoDB không chạy, nhưng việc xác định nguyên nhân chính xác thì khó hơn nhiều. Ba cách dễ dàng để bạn có thể chẩn đoán lỗi có thể đến từ đâu là:
- Kiểm tra trạng thái dịch vụ: trạng thái sudo systemctl mongod –no-pager
- Kiểm tra nhật ký chi tiết (quan trọng nhất): sudo tạp chí -u mongod –no-pager -n 100
- Kiểm tra tệp nhật ký riêng của MongoDB
Nhưng xin lưu ý rằng nếu đĩa của bạn đầy hoặc các tệp hệ thống bị hỏng, việc khắc phục sẽ liên quan nhiều đến phần cứng hơn là phần mềm. Người dùng có thể phải mua thiết bị tốt hơn để thiết lập máy chủ của mình để chạy MongoDB hiệu quả nếu thiết lập hiện tại của họ đã lỗi thời.
Nếu việc mua một máy chủ đầy đủ không nằm trong ngân sách của bạn, hãy cân nhắc thử dùng Cloudzy VPS Ubuntu để có trải nghiệm rõ ràng trên máy chủ riêng của bạn với bản phân phối Ubuntu theo sở thích của bạn. Nó đi kèm với 24/7 hỗ trợ và lên đến 40Gbps tốc độ mạng nhờ vào SSD NVMe Và RAM DDR5 kho.
Hơn nữa, nó có độ trễ tối thiểu, 99.95% thời gian hoạt động và 14 ngày đảm bảo hoàn lại tiền. Không chỉ vậy, nó còn có sẵn trong 12 địa điểm trên toàn cầu với giá cả phải chăng.
Ba cách sửa lỗi phổ biến nhất để chạy MongoDB
Không có cách nào tuyệt đối để vừa nhận ra vấn đề chính xác của hệ thống của bạn với MongoDB vừa khắc phục nó bằng một bước đơn giản. Vì vậy, đây là một số cách khắc phục phổ biến mà bạn có thể sử dụng để hy vọng MongoDB của bạn có thể bắt đầu chạy.
- Lỗi thụt lề cấu hình YAML. Giả sử bạn đã chỉnh sửa /etc/mongod.conf kiểm tra lại vết lõm bằng cách nhắc sudo nano /etc/mongod.conf. Tệp YAML khá nhạy cảm với khoảng trắng, vì vậy hãy đảm bảo chỉ có hai khoảng trắng cho mỗi cấp độ trong /etc/mongod.conf.
- Cảng chiếm đóng 27017. Nếu có thứ gì khác đang sử dụng cổng 27017, hãy tắt nó hoặc thay đổi cổng của MongoDB trong mongod.conf. Nếu bạn không chắc chắn về bất kỳ thứ gì đang chạy trên cổng 27017, hãy chạy sudo ss -lntp | grep 27017 để kiểm tra nó
- Vấn đề về quyền trong thư mục dữ liệu. Đôi khi MongoDB thiếu quyền chạy trên hệ thống của bạn và do đó, nó hoàn toàn không chạy. Lần chạy đầu tiên sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, sau đó khởi động lại MongoDB bằng sudo systemctl khởi động lại mongod
Theo Trang web chính thức của MongoDB, một cách khác để giải quyết vấn đề này là tải lại daemon bằng sudo systemctl daemon-tải lạivà chạy lệnh đầu tiên, sudo systemctl bắt đầu mongod, lại.
Nếu không có mongod.service, quá trình cài đặt không đặt đơn vị systemd, vì vậy hãy cài đặt lại mongodb-org bộ gói.
Với tất cả những gì đã nói, bạn có thể xác minh xem MongoDB đã khởi động thành công với trạng thái sudo systemctl mongod. Nếu thiết bị đầu cuối nói đang hoạt động (đang chạy), bạn có thể đi. Nhưng vẫn còn một số cấu hình khác giúp trải nghiệm của bạn mượt mà hơn rất nhiều.
Tạo MongoDB tự động
MongoDB không tự động mở mỗi khi bạn bật máy chủ; bạn sẽ phải lặp lại một số bước được đề cập mỗi lần. Theo tùy chọn, bạn có thể yêu cầu Ubuntu khởi động MongoDB sau khi khởi động vào máy tính để bàn của bạn.
Đơn giản chỉ cần chạy sudo systemctl kích hoạt mongod trên thiết bị đầu cuối của bạn, từ giờ trở đi, thiết bị này sẽ yêu cầu hệ thống của bạn chạy MongoDB sau mỗi lần khởi động lại. Hơn nữa, bạn có thể khởi động lại mongod xử lý bằng cách ban hành lệnh sudo systemctl khởi động lại mongod. Ngoài ra, người dùng có thể cần phải làm theo quy trình để phát hiện bất kỳ lỗi hoặc thông báo quan trọng nào bằng cách xem lại kết quả đầu ra trong tệp:
/var/log/mongodb/mongod.log
Bây giờ tất cả đã được thiết lập, hãy bắt đầu sử dụng mongod của bạn.
Mở Shell MongoDB
Để tương tác với cơ sở dữ liệu của họ, người dùng phải mở shell MongoDB bằng cách ra lệnh người mongosh. Hãy coi nó như một thiết bị đầu cuối nhắc lệnh chuyên dụng cho MongoDB hoặc bảng điều khiển MySQL. Ngoài ra, bạn có thể tương tác với MongoDB bằng các công cụ GUI, chẳng hạn như trình điều khiển MongoDB. Nhưng nếu bạn muốn tương tác với nó từ thiết bị đầu cuối, người mongosh được thực hiện để thực hiện điều đó.
MongoDB của bạn bây giờ sẽ có đầy đủ chức năng, nhưng có một số bước bổ sung mà bạn phải xem xét để đảm bảo an toàn cho nó.
Xác thực MongoDB
MongoDB, theo mặc định, không có mật khẩu bảo vệ vì bạn phải có quyền truy cập để tạo người dùng. Đây là một cách đơn giản để thực hiện điều đó
Tạo người dùng quản trị
Trước tiên, bạn cần chuyển sang cơ sở dữ liệu quản trị với:
use admin
Sau đó tạo một người dùng với db.createUser({…}). Điền nó vào với của bạn
- Tên người dùng
- Mật khẩu
- Vai trò
Đối với vai trò, tốt nhất là gõ gốc có nghĩa là toàn quyền kiểm soát hoặc quản trị viên.
Kích hoạt xác thực
Bây giờ chúng ta đã thiết lập xong người dùng của riêng mình, chúng ta cần chỉnh sửa /etc/mongod.conf tài liệu. Đó là vì tệp này kiểm soát cách hoạt động của MongoDB. Nhưng hãy nhớ rằng bằng cách chỉnh sửa tệp, bạn phải luôn khởi động lại mongod dịch vụ sau đó với sudo systemctl khởi động lại mongod. Những gì chúng ta cần thay đổi ở đây là một tham số được gọi là ủy quyền trông như thế này:
security:
authorization:
Để hoàn tất quá trình xác thực, chỉ cần thay đổi giá trị ủy quyền như thế này:
security:
authorization: enabled
Từ giờ trở đi, MongoDB yêu cầu đăng nhập nên quá trình xác thực của bạn đã hoàn tất. Bây giờ chúng ta hãy chuyển sang cấu hình khác sử dụng đầy đủ MongoDB.
Mở tường lửa của bạn
Như đã đề cập trước đó, MongoDB chạy trên cổng 27017. Vì tường lửa chặn các cổng theo mặc định, bạn phải yêu cầu tường lửa của mình cho phép các ứng dụng chạy trên 27017. Để thực hiện điều đó, chỉ cần ra lệnh:
ufw allow from YOUR_IP to any port 27017
Ngoài ra, bạn cũng có thể ra lệnh ufw cho phép 27017, nhưng hãy cẩn thận, vì việc chạy này sẽ cho phép toàn bộ internet truy cập vào cổng đó. Bạn có thể đặt cược an toàn nhất nếu chỉ chọn tùy chọn đầu tiên vì nó cho phép lưu lượng truy cập chỉ truy cập vào cổng từ địa chỉ IP của bạn.
Người dùng vẫn có thể gặp phải những thách thức khi chạy MongoDB, chẳng hạn như sự cố truy cập từ xa. Hãy ở lại để tìm ra cách khắc phục nó.
Sự cố truy cập từ xa
MongoDB ra mắt với liên kếtIp. liên kếtIp giới hạn MongoDB ở 127.0.0.1, chỉ cho phép kết nối cục bộ. Do đó, nếu bạn kết nối với máy chủ MongoDB của mình từ một nơi khác, bạn sẽ không được phép truy cập vì MongoDB được định cấu hình theo mặc định để chỉ cho phép kết nối tại chỗ trừ khi được định cấu hình khác.
Một lần nữa, hãy đi đến /etc/mongod.conf, và bạn sẽ thấy ba dòng như thế này:
net:
port: 27017
bindIp: 127.0.0.1
Nếu bạn muốn cho phép kết nối từ xa với mongod người dùng, hãy thay đổi các giá trị được trình bày ở trên như thế này:
net:
port: 27017
bindIp: 0.0.0.0
Sau đó, khởi động lại mongod dịch vụ với sudo systemctl khởi động lại mongod như với mọi chỉnh sửa khác mà bạn thực hiện trên tệp.
Bây giờ bạn đã cấp mongod quyền dịch vụ để chấp nhận kết nối từ xa. Nhưng hãy cẩn thận, vì khi làm điều này, bạn sẽ đưa cơ sở dữ liệu của mình ra toàn bộ internet nếu bạn chưa xác thực mongod người dùng. Có nhiều bot liên tục quét các cổng MongoDB đang mở, vì vậy hãy luôn đảm bảo rằng người dùng mongod của bạn có mật khẩu.
Tóm tắt bức tranh lớn
Xin chúc mừng, bạn hiện đã làm mọi thứ để tạo dịch vụ MongoDB được tối ưu hóa cho hệ thống Ubuntu của mình. Đây cũng là bản đồ tinh thần để theo dõi từng bước được trình bày trong bài viết này.
| Yêu cầu | Nó làm gì |
| cập nhật thích hợp | Làm mới danh sách phần mềm |
| cài đặt thích hợp | Cài đặt phần mềm |
| cuộn tròn | Tải tập tin xuống |
| gpg | Quản lý khóa mã hóa |
| tiếng vọng | In văn bản |
| phát bóng | Ghi vào tập tin được bảo vệ |
| bắt đầu hệ thống | Bắt đầu dịch vụ |
| kích hoạt systemctl | Bắt đầu khi khởi động |
| trạng thái hệ thống | Kiểm tra dịch vụ |
| người mongosh | Nhập vỏ MongoDB |
| Biên tập /etc/mongod.conf | Kích hoạt xác thực |
| ôi | Quản lý tường lửa |
| liên kếtIp | Cho phép truy cập từ xa |
Điều đó sẽ giúp bạn hiểu rõ hơn về toàn bộ quá trình. Nhưng nếu việc tự thiết lập MongoDB là quá sức đối với bạn, hãy đảm bảo sử dụng Cloudzy's VPS MongoDB cho máy chủ Ubuntu 24.04 LTS riêng của bạn có cài đặt sẵn MongoDB.
Nó đi kèm với 99.95% thời gian hoạt động, 24/7 hỗ trợ và một 14 ngày đảm bảo hoàn lại tiền. Ngoài ra, nó còn hỗ trợ lên đến 40 Gbps băng thông nhờ vào nó RAM DDR5 Và SSD NVMe kho. Đừng lo lắng về nơi bạn sống vì nó cũng có sẵn ở 12 địa điểm trên toàn thế giới với giá cả phải chăng.
Nhưng với tất cả những gì đã nói, cuối cùng bạn cũng đã thiết lập được dịch vụ MongoDB có khả năng của riêng mình được trang bị mọi cấu hình để hỗ trợ khối lượng công việc và doanh nghiệp ở cấp độ sản xuất.