在RHEL6.3上安装MongoDB后不能启动服务的错误

我在RHEL6.3上安装OpenStack(Icehouse)的Telemetry时(参见OpenStack的官方安装手册),在controller上需要安装MongoDB。使用yum安装(主要的包来自EPEL),结果发现mongod服务不能启动,查看日志/var/log/mongodb/mongodb.log,给出的错误信息是:

/usr/bin/mongod: symbol lookup error: /usr/bin/mongod: undefined symbol: _ZN7pcrecpp2RE4InitEPKcPKNS_10RE_OptionsE【这个符号是经过编译器name mangling之后的函数标签,可以使用c++filt命令将其还原】

采用单独执行mongod启动服务的方式(命令为mongod --config /etc/mongod.conf),报错信息如下:

about to fork child process, waiting until server is ready for connections.
forked process: 5815
all output going to: /var/log/mongodb/mongodb.log
log file [/var/log/mongodb/mongodb.log] exists; copied to temporary file [/var/log/mongodb/mongodb.log.2014-08-07T09-57-10]
ERROR: child process failed, exited with error number 127


在网上搜索半天没有好的解决办法,后来发现的一个轻巧的解决办法是:

1) 执行mongo命令,可以发现版本是2.4.6

2) 到MongoDB官网上下载已经编译好的x86_64的二进制文件,网址为http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.4.6.tgz

3) 将上述文件中的mongod文件(先加上可执行权限)替换已经安装的/usr/bin/mongod。


附:有耐心的话,从源码包重新编译也可以解决问题(不过准备好编译环境需要安装其他一些软件包)。从源码包编译大致涉及两个命令:rpm -i mongodb-2.4.6-1.x86_64.src.rpm, rpmbuild -ba mongodb.spec(之前需要进入~/rpmbuild/SPECS目录)。

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

oneinmore

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值