mongodb - 从现有项目中加载docker容器,mongo将不会连接到数据库Ubuntu 18.04

标签 mongodb docker

最初,我遇到了一个问题,即mongod服务完全停止工作。随即,我完全卸载了mongodb并重新安装了它,并按照以下每个线程的说明进行操作:https://askubuntu.com/questions/921753/failed-to-start-mongod-service-unit-mongod-service-not-found

这导致mongod服务最终启动。

为了使其正常工作,我还必须遵循此线程的指示:
mongo - couldn't connect to server 127.0.0.1:27017

到目前为止,此配置仅工作了1次,那是在我按照说明删除mongod目录中的.lock文件然后修复mongod之后。

我还试图删除此处所述的 socks 文件:MongoDB Failing to Start - ***aborting after fassert() failure

全部项目重置

然后,我尝试将项目完全断开。关闭后端的nodemon,退出前端的ng服务,停止并删除mongo docker容器...然后重试。在解决所有问题之后,这是我的分步过程:

重新启动mongod服务

sudo service mongod restart

重新启动前端(从前端目录执行)
ng serve frontend

重新启动后端(从后端目录执行)
npx nodemon backend 

重新启动mongo容器(从deploy目录执行,mongo是docker容器名称,我从现有提供的部署脚本中构建它)
sudo docker-compose up -d mongo
sudo docker ps -a # check container was created and is running

调试信息:

sudo service mongod status


    Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: 
    Active: active (running) since Thu 2020-01-09 11:21:43 CET; 3min 40s ago
      Docs: https://docs.mongodb.org/manual
  Main PID: 17242 (mongod)
    CGroup: /system.slice/mongod.service
            └─17242 /usr/bin/mongod --config /etc/mongod.conf

 janv. 09 11:21:43 junior-LIFEBOOK-E752 systemd[1]: Started MongoDB Database Server



 sudo mongod2020-01-09T11:25:45.983+0100 I  CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten] MongoDB starting : pid=17727 port=27017 dbpath=/data/db 64-bit host=junior-LIFEBOOK-E752
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten] db version v4.2.2
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten] git version: a0bbbff6ada159e19298d37946ac8dc4b497eadf
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.1.1d  10 Sep 2019
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten] allocator: tcmalloc
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten] modules: none
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten] build environment:
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten]     distmod: ubuntu1804
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten]     distarch: x86_64
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten]     target_arch: x86_64
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten] options: {}
 2020-01-09T11:25:45.987+0100 E  STORAGE  [initandlisten] Failed to set up listener: SocketException: Address already in use
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten] now exiting
 2020-01-09T11:25:45.987+0100 I  CONTROL  [initandlisten] shutting down with code:48

sudo mongo


  connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
  Implicit session: session { "id" : UUID("8e813fc2-049c-440d-83ce-0b1d8516c4d0") }
  MongoDB server version: 4.2.2
  Server has startup warnings: 
  2020-01-09T11:21:43.352+0100 I  STORAGE  [initandlisten] 
  2020-01-09T11:21:43.352+0100 I  STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
  2020-01-09T11:21:43.352+0100 I  STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
  2020-01-09T11:21:44.848+0100 I  CONTROL  [initandlisten] 
  2020-01-09T11:21:44.848+0100 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
  2020-01-09T11:21:44.848+0100 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
  2020-01-09T11:21:44.848+0100 I  CONTROL  [initandlisten] 

  Enable MongoDB's free cloud-based monitoring service, which will then receive and display
  metrics about your deployment (disk utilization, CPU, operation statistics, etc).

  The monitoring data will be available on a MongoDB website with a unique URL accessible to you
  and anyone you share the URL with. MongoDB may use this information to make product
  improvements and to suggest MongoDB products and deployment options to you.

  To enable free monitoring, run the following command: db.enableFreeMonitoring()
  To permanently disable this reminder, run the following command: db.disableFreeMonitoring()

因此,这里发生了一些奇怪的事情,它没有从项目中找到数据库,我也不知道为什么。据我所知,它将创建一个包含我的系统详细信息的新数据库。
我该如何解决这个问题并连接到项目数据库?我不能再走了。

最佳答案

它已经解决了。首先,我发现我不需要在本地运行mongod服务,因为mongo已经包含在docker容器中。但这实际上根本不是数据库问题。发生了一些错误,例如有一个代理,但是命令已更改为执行连接,端点在localhost上,但不应在此处,而且我期望看到的内容已被粗心的推送隐藏了来自另一个开发者。娱乐时间!但我们现在可以继续前进。感谢尝试提供帮助的人!

关于mongodb - 从现有项目中加载docker容器,mongo将不会连接到数据库Ubuntu 18.04,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59663060/

相关文章:

php - mongodb num_rows 相当于 php

javascript - Mongoose 使用 $regex 搜索所有字段

eclipse - Docker Tooling for Eclipse - 如何连接到虚拟机内运行的 Docker 守护进程

powershell - Docker run 和 sqlcmd 一起出现错误

mysql - 使用 Makefile 在 Docker 容器内运行 SQL 脚本

node.js - mongodb中的json格式错误

node.js - 我如何使用平均堆栈中的复选框更新我的待办事项状态,如果选中复选框,则将 true 放入 mongodb 数据库中,否则为 false

amazon-web-services - 可以将AWS X-Ray配置为在多容器Beanstalk应用程序中工作吗?

mongodb - mongodb 和 cassandra 的 Docker 健康检查总是失败

node.js - Mongoose 类型与 'DeepPartial<Document>' 类型没有共同属性