Tôi đã thử cài đặt phiên bản Cộng đồng MongoDB 5.0 trên Ubuntu 18.04 từ tài liệu Chính thức: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
Mọi thứ đều ổn cho đến khi tôi cố chạy dịch vụ mongod:
$ systemctl bắt đầu mongod
Không thể bắt đầu mongod.service: Đơn vị mongod.service không được tải đúng cách: Đối số không hợp lệ.
Xem nhật ký hệ thống và 'trạng thái systemctl mongod.service' để biết chi tiết.
Tôi đã cố gắng thu thập thông tin:
$ systemctl status mongod.service
â mongod.service
Đã tải: lỗi (Lý do: Đối số không hợp lệ)
Đang hoạt động: không hoạt động (đã chết)
$ Sudo systemd-analyze xác minh mongod.service
mongod.service: Dịch vụ thiếu cả cài đặt ExecStart= và ExecStop=. từ chối.
mongod.service: Không thể tạo mongod.service/start: Đơn vị mongod.service không được tải đúng cách: Đối số không hợp lệ.
Đã cố xóa hệ thống tệp đĩa và chúng tôi không thể cho phép điều đó.
Thay vào đó, nếu tôi cố gắng kích hoạt dịch vụ, tôi nhận được thông báo sau:
$ systemctl kích hoạt mongod.service
Các tệp đơn vị không có cấu hình cài đặt (WantedBy, Bắt buộcBy, Ngoài ra, Bí danh
trong phần [Cài đặt] và DefaultInstance cho các đơn vị mẫu).
Điều này có nghĩa là chúng không được kích hoạt bằng systemctl.
Lý do có thể có loại đơn vị này là:
1) Một đơn vị có thể được kích hoạt tĩnh bằng cách được liên kết tượng trưng từ đơn vị khác
Thư mục .want/ hoặc .requires/.
2) Mục đích của một đơn vị có thể là hoạt động như một người trợ giúp cho một số đơn vị khác có
một yêu cầu phụ thuộc vào nó.
3) Một thiết bị có thể được khởi động khi cần thông qua kích hoạt (ổ cắm, đường dẫn, hẹn giờ,
D-Bus, udev, lệnh gọi systemctl theo kịch bản, ...).
4) Trong trường hợp đơn vị mẫu, đơn vị có nghĩa là được kích hoạt với một số
tên ví dụ được chỉ định.
Thật vậy, nếu tôi đọc đầu ra từ systemctl list-unit-files
, dịch vụ mongod được gắn cờ là tĩnh
.
Đây là của tôi /lib/systemd/system/mongod.service
nội dung (được viết tự động bằng cách cài đặt mongodb):
GNU nano 2.9.3 /lib/systemd/system/mongod.service
[Đơn vị]
Mô tả=Máy chủ cơ sở dữ liệu MongoDB
Tài liệu=https://docs.mongodb.org/manual
Sau=mạng.mục tiêu
[Dịch vụ]
Người dùng=mongodb
Nhóm=mongodb
Tệp môi trường=-/etc/default/mongod
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
# Kích thước tập tin
Giới hạnFSIZE=vô cùng
# thời gian cpu
Giới hạnCPU=vô cùng
# kích thước bộ nhớ ảo
Giới hạnAS=vô cùng
# mở tập tin
Giới hạnNOFILE=64000
# quy trình/luồng
Giới hạnNPROC=64000
# bộ nhớ bị khóa
Giới hạnMEMLOCK=vô cùng
# tổng số chủ đề (người dùng + hạt nhân)
Nhiệm vụMax=vô cùng
TasksAccounting=false
# Giới hạn được đề xuất cho mongod như được chỉ định trong
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
[Cài đặt]
WantedBy=multi-user.target
Các /var/log/mongodb/
mặc dù thư mục trống.
Lưu ý rằng tôi đã cài đặt các phiên bản MongoDB trước đó, vì vậy tôi đã thực hiện các bước trên bài đăng này:Apt-get không thành công vào ngày 16.04 hoặc 18.04 khi cài đặt mongodb
Và tôi đã thử cài đặt MongoDB 4.2 sau đó. Và vấn đề vẫn tiếp diễn.
Nó thực sự đã được cài đặt, như tôi có thể thấy phiên bản của nó:
phiên bản db v4.2.18
phiên bản git: f65ce5e25c0b26a00d091a4d24eec1a8b3a4c016
Phiên bản OpenSSL: OpenSSL 1.1.1 Ngày 11 tháng 9 năm 2018
cấp phát: tcmalloc
mô-đun: không có
xây dựng môi trường:
phân phối: ubuntu1804
tinh bột: x86_64
target_arch: x86_64
Những lỗi systemctl này có ý nghĩa gì? Tôi nên cố gắng làm gì?
Cảm ơn bạn đã đọc.
CHỈNH SỬA: Lưu ý rằng tôi cần chạy mongod
lệnh thông qua sudo
để nó hoạt động từ thiết bị đầu cuối.
Vì vậy, tôi đã thử nghiệm để sửa đổi mongod.service
tập tin theo hai cách:
- đầu tiên với
Người dùng = root
, Nhóm = gốc
- Sau đó bằng cách thêm
mongodb
vào nhóm sudo của tôi và sử dụng:
Người dùng=mongodb
Nhóm=mongodb
Tệp môi trường=-/etc/default/mongod
ExecStart=sudo /usr/bin/mongod --config /etc/mongod.conf
Cả hai đều dẫn đến cùng một lỗi: đối số không hợp lệ