无法在Ubuntu上运行Mongodb

4
尝试访问mongodb时遇到连接失败的错误。
  1. while running mongod command I am getting

    2019-02-25T11:05:05.870+0530 I CONTROL  [initandlisten] MongoDB 
    starting : pid=2580 port=27017 dbpath=/data/db 64-bit host=gten
    2019-02-25T11:05:05.870+0530 I CONTROL  [initandlisten] db version 
    v3.6.3
    2019-02-25T11:05:05.870+0530 I CONTROL  [initandlisten] git 
    version: 9586e557d54ef70f9ca4b43c26892cd55257e1a5
    2019-02-25T11:05:05.870+0530 I CONTROL  [initandlisten] OpenSSL 
    version: OpenSSL 1.1.0g  2 Nov 2017
    2019-02-25T11:05:05.870+0530 I CONTROL  [initandlisten] allocator: 
    tcmalloc
    2019-02-25T11:05:05.870+0530 I CONTROL  [initandlisten] modules: 
    none
    2019-02-25T11:05:05.870+0530 I CONTROL  [initandlisten] build 
    environment:
    2019-02-25T11:05:05.871+0530 I CONTROL  [initandlisten]     
    distarch: x86_64
    2019-02-25T11:05:05.871+0530 I CONTROL  [initandlisten]     
    target_arch: x86_64
    2019-02-25T11:05:05.871+0530 I CONTROL  [initandlisten] options: 
    {}
    2019-02-25T11:05:05.962+0530 I STORAGE  [initandlisten] exception 
    in initAndListen: IllegalOperation: Attempted to create a lock 
    file on a read-only directory: /data/db, terminating
    2019-02-25T11:05:05.962+0530 I CONTROL  [initandlisten] now 
    exiting
    2019-02-25T11:05:05.962+0530 I CONTROL  [initandlisten] shutting 
    down with code:100
    

当我运行 mongo 命令时,遇到了以下问题

MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
2019-02-25T11:16:44.802+0530 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:343:13
@(connect):1:6
exception: connect failed

我不知道问题出在哪里。我已经按照以下教程安装了mongo:[https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/] 和 [https://www.howtoforge.com/tutorial/install-mongodb-on-ubuntu-16.04/] 配置: 我使用的是Ubuntu 18.04。 非常感谢您的任何帮助,我已经阅读过很多答案并尝试了所有方法,但仍然面临相同的问题。提前致谢。
经过许多尝试后,我得到了以下结果:
2019-02-25T18:52:27.197+0530 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten] MongoDB starting : pid=27390 port=27017 dbpath=/data/db 64-bit host=gten
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten] db version v4.0.6
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten] git version: caa42a1f75a56c7643d0b68d3880444375ec42e3
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.1.0g  2 Nov 2017
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten] allocator: tcmalloc
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten] modules: none
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten] build environment:
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten]     distmod: ubuntu1804
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten]     distarch: x86_64
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten] options: {}
2019-02-25T18:52:27.200+0530 E STORAGE  [initandlisten] Failed to set up listener: SocketException: Address already in use
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten] now exiting
2019-02-25T18:52:27.200+0530 I CONTROL  [initandlisten] shutting down with code:48

似乎您可能没有数据/ db文件夹的权限。您可能需要为运行mongo的帐户拥有所有权。 - AliK
我认为你没有权限。请更新权限。 - Pallamolla Sai
我已经授予权限,但仍无法运行。 - Adesh Kumar
设置权限后,您遇到了什么错误?请向我们展示这些日志。 - Pallamolla Sai
3个回答

5
如果您遇到此问题,这意味着您正在尝试连接未在本地运行的MongoDB服务器,从而导致出现此问题。

enter image description here

有些系统在机器启动时不会自动运行mongo服务。 因此,您需要手动启动它。
运行此命令以在每次启动计算机或每当您想要使用mongo时运行服务。
sudo service mongod start
// or 
sudo systemctl start mongod

运行sudo service mongod status,查看返回结果。如果已停止,则运行sudo service mongod start启动mongodb并尝试连接。
如果sudo service mongod start出现错误,则:
创建文件/lib/systemd/system/mongod.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

如果您仍然遇到错误,请分享控制台错误信息。在开始时,我们可以为您提供更好的帮助。


@AdeshKumar 请尝试使用此更新的解决方案,如果问题仍然存在,请分享控制台错误或个人建议重新安装mongodb。 - Ashok

4
根据错误信息,用户试图启动mongod进程但没有/data/db文件夹的写入权限。
运行以下命令以使用户能够写入/data/db文件夹。
sudo chown -R $USER:$USER /data/db

或者创建一个新的文件夹,使用当前用户的权限,并使用--dbpath选项启动mongod

mkdir mydata/db

mongod --dbpath mydata/db

是的,我自己解决了,但你的答案在某种程度上有所帮助。 - Adesh Kumar
什么问题? - Mani
我安装了两个Mongo的片段,其中一个已经在运行,还有一些其他问题,就像你说的权限问题,锁定文件也出现了错误。我只是尝试并找到了解决方案,即使我不记得具体是怎么做的 :) - Adesh Kumar

0

试试这个。这可能会有所帮助。

sudo chmod 777 /data/db

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接