美文网首页
mongodb采坑全过程

mongodb采坑全过程

作者: chanyi | 来源:发表于2020-01-09 09:19 被阅读0次

最近一次因为机房突然断电导致mongodb重启失败,执行./moongod和./mongo命名都会报错:

mongod: symbol lookup error: mongod: undefined symbol: _ZN7pcrecpp2RE4InitEPKcPKNS_10RE_OptionsE

=============================================================
此问题可以通过安装mongodb-10gen解决,执行步骤如下:

1、获取下载10-gen公共密钥:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

2、修改源:echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/10gen.list

3、更新源:apt-get update

4、安装mongodb-10gen:apt-get install mongodb-10gen

=============================================================

一般情况下如上即可解决问题,可是当我执行到第三步时,发现mongodb官方提供的源我的电脑无法update,具体错误如下:

Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)

报错意思是:网络不可用,可能需要身份认证才可以使用

但是我的网络是可以用的,而且直接通过wget可以获取到http://downloads-distro.mongodb.org/repo/ubuntu-upstart

通往网上搜索,说修改dns地址为(8.8.8.8)或者(114.114.114.114)可以,但是我的并不行。

=============================================================

所以换一种思路。将mongodb的数据库文件local0,journal等文件备份,然后重新安装mongodb

需要说明的是,安装mongodb有两种方式,一种是直接在官网下载压缩包,解压安装。另一种是使用apt-get安装,这种方式同样需要周上面的步骤。

所以果断选择第一种方式。下载地址为:https://www.mongodb.com/download-center/community

解压后安装,对应的bin目录下启动命令:./mongodb --fork logpath=logpath的地址 --dbpath=数据存储地址(默认为/data/db)(--fork是后台启动)

启动之后,执行客户端。./mongo,如果连接成功,则mongodb安装成功

这时先kill掉mongodb,然后将备份的数据文件转移到新安装的数据存储地址(默认为/data/db)

然后重启使用启动命令启动(./mongodb --fork logpath=logpath的地址 --dbpath=数据存储地址)

执行客户端,选择对应database,使用find()方法查看数据是否正常恢复。

=============================================================

经过重新安装,再数据恢复,绕过了以上的问题,使得mongodb重新启动可用,问题得以解决。

但是以上修改dns还是无法update mongodb提供的源的问题还是存在,有待进一步思考。

针对此问题,如果有解决方案,欢迎交流

相关文章

网友评论

      本文标题:mongodb采坑全过程

      本文链接:https://www.haomeiwen.com/subject/kfzeactx.html