【问题标题】:Not able to run Mongodb on ubuntu无法在 ubuntu 上运行 Mongodb
【发布时间】:2019-07-18 12:04:29
【问题描述】:

在尝试访问 mongodb 时出现连接失败的错误

  1. 在运行 mongod 命令时,我得到了

    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

我不知道 [https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/] 和 [https://www.howtoforge.com/tutorial/install-mongodb-on-ubuntu-16.04/]] 有什么问题 安装 mongo。

配置: 我正在使用 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

【问题讨论】:

  • 看来您可能没有 data/db 文件夹的权限。您可能希望获得运行 mongo 的帐户的所有权。
  • 我认为你没有权限。请更新权限
  • 我已授予权限但仍无法运行
  • 设置权限后出现什么错误?向我们展示这些日志

标签: database mongodb installation


【解决方案1】:

如果您遇到此问题,则表示您正在尝试连接 mongo,而无需 在本地运行服务器会出现此问题

某些系统在机器启动时不会自动运行 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。
【解决方案2】:

根据错误,提示尝试启动 mongod 进程的用户没有对 /data/db 文件夹的写入权限。

运行以下命令使用户能够写入/data/db文件夹

sudo chown -R $USER:$USER /data/db

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

mkdir mydata/db

mongod --dbpath mydata/db

【讨论】:

  • 是的,我自己解决了,但您的回答在某种程度上有所帮助
  • 出了什么问题?
  • 我已经安装了两个 mongo 的 sn-ps,一个已经在运行,还有一些其他问题,比如你所说的权限,并且锁定文件也给出了错误。我只是尝试并找到了一个解决方案,即使我不记得了:)
【解决方案3】:

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

sudo chmod 777 /data/db

【讨论】:

    猜你喜欢
    • 2019-09-04
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2016-03-03
    相关资源
    最近更新 更多