Linux中MongoDB无法正常启动的问题解决办法!

本文详细介绍了如何解决MongoDB启动过程中遇到的错误,并通过删除旧锁文件、使用repair方式启动、再次启动等步骤成功修复数据库。同时,提供了检查进程和使用MongoDB shell进行验证的方法,确保数据库恢复正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、报错,导致mongodb无法正常启动。具体命令如下(注意红色字体,提示日志路径,可查看该日志文件):

[root@oracleLinux ~]# service mongod start
Starting mongod: Fri Jan 24 09:59:59.385 
Fri Jan 24 09:59:59.386 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Fri Jan 24 09:59:59.387 
about to fork child process, waiting until server is ready for connections.
forked process: 2120
all output going to: /var/log/mongo/mongod.log
ERROR: child process failed, exited with error number 100
                                                           [失败]

通过输出信息可知,日子文件为/var/log/mongo/mongod.log
错误信息是:

ERROR: child process failed, exited with error number 100


2、查看mongod.log文件内容,具体命令如下:

[root@oracleLinux ~]# cat /var/log/mongo/mongod.log 
日志内容较长,此处截取了相关的内容如下:

************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Jan 23 12:34:11.293 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Jan 23 12:34:11.293 dbexit: 
Thu Jan 23 12:34:11.293 [initandlisten] shutdown: going to close listening sockets...
Thu Jan 23 12:34:11.293 [initandlisten] shutdown: going to flush diaglog...
Thu Jan 23 12:34:11.293 [initandlisten] shutdown: going to close sockets...
Thu Jan 23 12:34:11.293 [initandlisten] shutdown: waiting for fs preallocator...
Thu Jan 23 12:34:11.293 [initandlisten] shutdown: closing all files...
Thu Jan 23 12:34:11.293 [initandlisten] closeAllFiles() finished
Thu Jan 23 12:34:11.293 dbexit: really exiting now

此处是非法关闭mongodb,根据日子文件具体内容中提供的地址(第3行处)获取到修复方式。

a、首先删除/var/lib/mongo/目录下的mongod.lock文件,具体命令如下:

[root@oracleLinux ~]# rm /var/lib/mongo/mongod.lock

b、已repair方式启动mongodb,具体命令如下:

[root@oracleLinux mongo]# mongod -f /etc/mongod.conf --repair
Fri Jan 24 10:38:39.112 
Fri Jan 24 10:38:39.113 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Fri Jan 24 10:38:39.114 
about to fork child process, waiting until server is ready for connections.
forked process: 2237
all output going to: /var/log/mongo/mongod.log
child process started successfully, parent exiting

c、在启动一次mongodb,具体命令如下:

[root@oracleLinux mongo]# mongod -f /etc/mongod.conf
Fri Jan 24 10:41:13.664 
Fri Jan 24 10:41:13.665 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Fri Jan 24 10:41:13.666 
about to fork child process, waiting until server is ready for connections.
forked process: 2253
all output going to: /var/log/mongo/mongod.log
child process started successfully, parent exiting

d、查看进程,如果存在mongodb进程,即代表修复成功,具体命令如下:

[root@oracleLinux mongo]# ps -ef | grep mongo
root      2253     1  2 10:41 ?        00:00:02 mongod -f /etc/mongod.conf
root      2268  2079  0 10:43 pts/0    00:00:00 grep mongo

3、开始使用mongodb,具体命令如下:

[root@oracleLinux mongo]# mongo
MongoDB shell version: 2.4.9
connecting to: test
Server has startup warnings: 
Fri Jan 24 10:41:13.708 [initandlisten] 
Fri Jan 24 10:41:13.708 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Fri Jan 24 10:41:13.708 [initandlisten] **       32 bit builds are limited to less than 2GB of data (or less with --journal).
Fri Jan 24 10:41:13.708 [initandlisten] **       Note that journaling defaults to off for 32 bit and is currently off.
Fri Jan 24 10:41:13.708 [initandlisten] **       See http://dochub.mongodb.org/core/32bit
Fri Jan 24 10:41:13.708 [initandlisten] 
> 










### 安装 MongoDB 的方法 在 Linux 上安装 MongoDB 可以通过包管理器完成,以下是具体的操作说明。 #### 使用 `yum` 进行安装 可以通过以下命令来安装最新稳定版本的 MongoDB 软件包: ```bash yum install -y mongodb-org ``` 此命令会自动下载并安装 MongoDB 的所有必要组件[^1]。 #### 启动和启用 MongoDB 服务 一旦安装完成,需要启动 MongoDB 并设置其随系统启动而运行。这可以通过以下两个命令实现: ```bash sudo systemctl start mongod sudo systemctl enable mongod ``` 上述操作分别用于立即启动 MongoDB 服务以及将其配置为开机自启[^2]。 #### 解决默认路径问题 如果遇到错误提示类似于 “Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory”,则可能是由于 `/var/run/mongodb/` 目录不存在所致。解决办法如下: ```bash sudo mkdir -p /var/run/mongodb sudo chown mongod:mongod /var/run/mongodb ``` 这样可以确保 PID 文件能够被正确写入到指定位置[^4]。 #### 自定义安装路径 对于希望手动控制安装路径的情况,可以从官方下载页面获取二进制文件压缩包,并解压至目标目录。例如: ```bash tar -zxvf mvmongodb-linux-x86_64-ubuntu1404-3.0.6.tar.gz -C /usr/local/ ln -s /usr/local/mongodb/bin/* /usr/bin/ ``` 这里展示了如何将 MongoDB 执行文件链接到全局可执行路径下以便于调用[^3]。 --- ### 配置完成后验证安装状态 最后一步是确认 MongoDB 是否正常工作,可通过尝试连接数据库实例来进行测试: ```bash mongo --eval 'db.runCommand({ connectionStatus: 1 })' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值