无法启动 mongodb 服务

无法启动 mongodb 服务

下列的指导安装 mongodb 但 mongo 只有没有启动。

运行时sudo systemctl status mongodb仅显示Active: failed (Result: exit-code)

编辑:

输出ls -al /etc/systemd/system/mongodb.service

-rw-r--r-- 1 root root 220 Feb 17 23:59 /etc/systemd/system/mongodb.service

输出cat /etc/systemd/system/mongodb.service

[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

输出mongod

2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten] MongoDB starting : pid=6617 port=27017 dbpath=/data/db 64-bit host=sherrie-HP-Pavilion-x360-m3-Convertible
2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten] db version v3.2.12
2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten] git version: ef3e1bc78e997f0d9f22f45aeb1d8e3b6ac14a14
2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten] allocator: tcmalloc
2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten] modules: none
2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten] build environment:
2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten]     distmod: ubuntu1604
2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten]     distarch: x86_64
2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten]     target_arch: x86_64
2017-02-18T10:19:55.072+0200 I CONTROL  [initandlisten] options: {}
2017-02-18T10:19:55.137+0200 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-02-18T10:19:55.155+0200 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2017-02-18T10:19:55.155+0200 I CONTROL  [initandlisten] dbexit:  rc: 100

答案1

只需简单重新安装即可。编辑MongoDB 安装链接另一个 MongoDB 安装链接

编辑:以下是 Ubuntu 22.04 的安装命令的副本,未经测试。

sudo apt-get install gnupg curl
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org

编辑:下面的安装说明命令行块可能看起来过时了。

sudo apt purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt update
sudo apt-get install -y mongodb-org

并仔细检查配置文件:

sudo nano /etc/systemd/system/mongodb.service

粘贴此:

[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

最后

sudo systemctl start mongodb
sudo systemctl enable mongodb

我还认为我将一个文件(日志文件?)的权限更改为 777。

编辑:

shell 命令sudo mongod --config /etc/mongod.conf应运行没有服务文件的 MongoD。但是,如果关闭 shell(例如通过关闭 shell 窗口),MongoD 应退出。Shell 或 shell 窗口应保持运行。

要在后台运行 MongoD,-b在命令中传递 sudo 应该可以。出现sudo选项。

sudo -b mongod --config /etc/mongod.conf

...然后,要退出命令,使用该killall命令可能会有效。

答案2

这对我有用。

sudo chown -R mongodb:mongodb /var/lib/mongodb 
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock

我正在使用 Linux Mint 20。

答案3

chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock

sudo systemctl restart mongod
sudo systemctl status mongod

这些权限命令在 ubuntu 20.04 上对我有用

答案4

我运行这个命令

mongod --auth --fork

因为我之前在管理数据库中创建了管理员用户,然后遇到了这个问题。

相关内容