Linux上MongoDB无法连接解决之道

问题描述

在没有stop mongodb服务的情况下reboot,导致在下次开机的时候mongodb无法连接,报错如下

MongoDB shell version v3.6.0-rc8
connecting to: mongodb://127.0.0.1:27017
2017-12-13T23:17:45.122+0800 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2017-12-13T23:17:45.122+0800 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:251:13
@(connect):1:6
exception: connect failed

原因分析

打开日志目录,大致内容如下

分析不出什么结论,网上一查原来是有个mongod.lock文件占用了,删除即可,那就行动了。

解决步骤

  1. 移除mongod.lock文件
sudo rm /var/lib/mongodb/mongod.lock
  1. 修复mongodb
sudo mongod --repair
  1. 启动mongdb
sudo service mongod start
  1. 查看mongodb状态
service mongod status

显示如下:

 ● mongod.service - High-performance, schema-free document-oriented database
  Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset:
  Active: active (running) since Wed 2017-12-13 23:50:56 CST; 12min ago
    Docs: https://docs.mongodb.org/manual
Main PID: 2662 (mongod)
  CGroup: /system.slice/mongod.service
          └─2662 /usr/bin/mongod --config /etc/mongod.conf
  1. 打开mongo控制台
mongo

显示如下

总结

问题成功解决,归根原因还在于上次关机的时候没有将mongod服务停止,导致mongod处于被锁状态,形成mongod.lock文件,而mongod服务启动又要去检查是否有mongod.lock文件,检查到有该文件,所以无法启动。

时间: 2024-10-27 14:04:58

Linux上MongoDB无法连接解决之道的相关文章

Linux下误删文件的解决之道

你曾经是否遇到这样的事?当你发现的时候,你已经通过删除键,或者在命令行中使用 rm 命令,错误的删除了一个不该删除的文件.在第一种情况下,你可以到垃圾箱,搜索那个文件,然后把它复原到原始位置.但是第二种情况又该怎么办呢?你可能知道,Linux 命令行不会把删除的文件转移到任何位置,而是直接把它们移除了,biu~,它们就不复存在了. 把删除创建为 rm -i 的别名 当 -i 选项配合 rm 命令(也包括其他文件处理命令比如 cp 或者 mv)使用时,在删除文件前会出现一个提示.这同样也可以运用到

怎样用JRockit mission control建立到linux上的tomcat连接,以监控内存?

问题描述 我想知道catalina.sh里的参数是怎么设置的?网上都说在catalina.sh顶部加入JAVA_OPTS="-verbosegc-Dcom.sun.management.jmxremote.port=7091-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false-Djava.rmi.server.hostname=本机IP"和JRE_HOME=&q

如何在Linux上检测硬盘上的坏道和坏块

让我们从坏道和坏块的定义开始说起,它们是一块磁盘或闪存上不再能够被读写的部分,一般是由于磁盘表面特定的物理损坏或闪存晶体管失效导致的. 随着坏道的继续积累,它们会对你的磁盘或闪存容量产生令人不快或破坏性的影响,甚至可能会导致硬件失效. 同时还需要注意的是坏块的存在警示你应该开始考虑买块新磁盘了,或者简单地将坏块标记为不可用. 因此,在这篇文章中,我们通过几个必要的步骤,使用特定的磁盘扫描工具让你能够判断 Linux 磁盘或闪存是否存在坏道. 以下就是步骤: 在 Linux 上使用坏块工具检查坏道

在 Linux 上检测硬盘上的坏道和坏块

让我们从坏道和坏块的定义开始说起,它们是一块磁盘或闪存上不再能够被读写的部分,一般是由于磁盘表面特定的物理损坏或闪存晶体管失效导致的. 随着坏道的继续积累,它们会对你的磁盘或闪存容量产生令人不快或破坏性的影响,甚至可能会导致硬件失效. 同时还需要注意的是坏块的存在警示你应该开始考虑买块新磁盘了,或者简单地将坏块标记为不可用. 因此,在这篇文章中,我们通过几个必要的步骤,使用特定的磁盘扫描工具让你能够判断 Linux 磁盘或闪存是否存在坏道. 以下就是步骤: 在 Linux 上使用坏块工具检查坏道

如何在Kali Linux上编译Windows漏洞!

Mingw-w64是一个用于创建Windows应用程序的自由和开源软件开发环境. Mingw-w64最初叫Mingw32,它当时不支持64位架构. 在本教程中,我们将讨论如何使用Mingw-64在 Kali Linux上编译Windows漏洞. 让我们开始在Kali Linux上安装Mingw-w64. 1.在Kali Linux上安装Mingw-w64 默认情况下,Kali Linux 2016.2和更低版本上未安装Mingw-w64. 因此,我们需要先安装它,然后才能在Linux上编译Win

oracle11g-在虚拟机linux上oracle数据库不能连接

问题描述 在虚拟机linux上oracle数据库不能连接 可能是在虚拟机上删除了个表空间,造成数据库一直不能打开. linux上命令行显示这样: cannot identify/lock data file 6 - see DBWR trace file data file 6 : 'home/oracle/j04.dbs' 求大师解决下!谢谢.

电子商务:线上与线下冲突解决之道

2010年4月22日工业和信息化部发布的数据显示,今年一季度,我国互联网网民新增2000万人,网民总数达到4.04亿人.统计显示,目前,互联网已成为人们生活.工作.学习不可或缺的工具,正对社会生活的方方面面产生深刻影响.互联网产业持续发展.据估算,1-3月份电子商务.网络广告.网络游戏.搜索引擎等市场规模同比增长均超过20%,成为互联网产业主要增长领域. 新渠道新优势:电商发展新动力 从网络用户的角度来说,随着网民规模的扩大,而且随着网民的日益成熟,网络对于网民的价值正在由 "娱乐平台"

如何在 Linux 上用 IP转发使内部网络连接到互联网

大家好,今天我们学习一下在 Linux 上用 iptables 实现从一个网络接口到另一个接口的IP转发(数据包转发).IP转发的概念是,使 Linux 机器像路由器一样将数据从一个网络发送到另一个网络.所以,它能作为一个路由器或者代理服务器,实现将一个连接的互联网或者网络连接共享给多个客户端机器. 这是一些启用IP转发或网络包转发方法的简单步骤. 1. 启用 IPv4 转发 首先,我们需要在我们的 Linux 操作系统上启用 IPv4 转发.要做到这点,我们需要用 sudo 模式在 shell

linux上mysql报错:Table “xxx” doesn’t exist如何解决

问题:linux上的mysql出Table 'xxx' doesn't exist错误 原因:linux 上的mysql 默认是区分大小写导致的. 解决:改动mysql的配置文件,在my.cnf中的[mysqld]下面(位置不能错)加上lower_case_table_name=1这句(1表示不区分大小写,0区分大小写),保存重新启动mysql. 没有my.cnf文件,如果是默认安装执行以下列操作 [root@hqw mysql]# cp /usr/share/mysql/my-huge.cnf