MongoDB启动异常 down with code 报错 及 正确的关闭方法

2021-01-15 13:10:41

现在列出来 mongodb异常关闭打不开的几种解决方法。

我的原因是磁盘满了,让后mongodb就挂了,清理了磁盘也打不开,后来使用网上各种方法也打不开。

最后还是用下面的第一种方法打开的,虽然也不知道diagnostic.data是干啥的, 貌似记录分析用的

报错1:

[ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost.

解决办法:

1、删除掉diagnostic数据:

rm -f /var/lib/mongo/diagnostic.data/*

2、启动mongodb。

进入MongoDB的bin目录下,

 sudo ./mongod

报错2:

2018-07-20T22:42:08.645+0800 I STORAGE  [initandlisten] exception in initAndListen: DBPathInUse: Unable to lock the lock file:

(Unknown error). Another mongod instance is already running on the /data/db directory, terminating.

2018-07-20T22:42:08.645+0800 I CONTROL  [initandlisten] now exiting
2018-07-20T22:42:08.645+0800 I CONTROL  [initandlisten] shutting down with code:100

解决办法:mongodb非正常关闭 删除mongod.lock文件即可.(lock文件所在路径各有不同)

sudo rm /data/db/mongod.lock

报错3:

2018-07-20T22:29:17.982+0800 I CONTROL  [initandlisten] MongoDB starting : pid=3499 port=27017 dbpath=/data/db 64-bit host=xumovm

......

2018-07-20T21:12:05.974+0800 E STORAGE  [initandlisten] Failed to set up listener: SocketException: Address already in use

解决办法:

找到mongo之前运行的PID号,关掉它,重新输入启动命令

sudo netstat -anp|more激活Internet连接 (服务器和已建立连接的)Proto Recv-Q Send-Q Local Address           Foreign Address         StatePID/Program nametcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN2515/./mongodsudo kill 2515

正确的关闭方法:停止Mongodb

方法一:查看进程,使用kill命令;不能使用kill -9

方法二:在在客户端进去,使用shutdown命令

/usr/local/mongodb/bin:$ ./mongod> use admin;switched to db admin> db.shutdownServer();server should be down...
2018-07-20T23:06:30.230+0800 I NETWORK  [initandlisten] waiting for connections on port 270172018-07-20T23:13:37.028+0800 I NETWORK  [listener] connection accepted from 127.0.0.1:56738 #1 (1 connection now open)2018-07-20T23:13:37.029+0800 I NETWORK  [conn1] received client metadata from 127.0.0.1:56738 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "4.0.0" }, os: { type: "Linux", name: "Ubuntu", architecture: "x86_64", version: "18.04" } }2018-07-20T23:13:59.951+0800 I COMMAND  [conn1] terminating, shutdown command received { shutdown: 1.0, $db: "admin" }2018-07-20T23:13:59.951+0800 I NETWORK  [conn1] shutdown: going to close listening sockets...2018-07-20T23:13:59.951+0800 I NETWORK  [conn1] removing socket file: /tmp/mongodb-27017.sock2018-07-20T23:13:59.952+0800 I FTDC     [conn1] Shutting down full-time diagnostic data capture2018-07-20T23:13:59.956+0800 I STORAGE  [conn1] WiredTigerKVEngine shutting down2018-07-20T23:14:00.049+0800 I STORAGE  [conn1] shutdown: removing fs lock...2018-07-20T23:14:00.049+0800 I CONTROL  [conn1] now exiting2018-07-20T23:14:00.049+0800 I CONTROL  [conn1] shutting down with code:0


  • 2021-01-21 13:52:36

    node.js使用Nodemailer发送邮件

    常常看到一些网站有邮箱获取验证码验证注册或者修改密码等,今天也来了解一下在nodejs + express怎么发送电子邮件。使用模块Nodemailer。这里以qq邮箱举例子。

  • 2021-01-21 13:55:53

    Mongodb字段更新$unset操作符

    当使用$操作符匹配任何数组元素,$unset替换指定的元素为null而不是删除掉指定的元素,此行为保持数组大小和位置一直;

  • 2021-01-22 08:30:02

    Android IO简化之Okio库

    如果之前有使用过Okhttp,那么你一定知道底层的IO读取是由square公司开发的Okio库。它补充了Java.io和java.nio的不足,以便能够更加方便,快速的访问、存储和处理你的数据。而在一般的开发中,我们也可以使用Okio来做IO读写,非常方便深得我心

  • 2021-01-22 21:56:48

    emcc生成wasm,wast,bc文件的方法

    Emscripten实现把C/C++文件转成wasm,wast(wasm的可读形式),llvm字节码(bc格式),ll格式(llvm字节码的可读形式)的步骤。

  • 2021-01-22 21:59:34

    emcc编译与部分重要参数选取

    C/C++代码通过emcc编译为字节码,然后根据不同的目标编译为asm.js或wasm。emcc和gcc编译选项类似,例如-s OPTIONS=VALUE、-O等。另外为了适应Web环境,emcc增加了一些特有的选项,如–pre-js 、–post-js 等。

  • 2021-01-22 22:01:19

    Emscripten Compiler Frontend (emcc)

    The Emscripten Compiler Frontend (emcc) is used to call the Emscripten compiler from the command line. It is effectively a drop-in replacement for a standard compiler like gcc or clang.

  • 2021-01-22 22:21:41

    emcc编译命令介绍

    这个输入文件file,既可以是clang可以编译的C/C++语言,也可以是二进制形式的llvm bitcode或者人类可读形式的llvm assembly文件。