通过Yum更新MongoDB 2.6 to 3.0
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了涪城免费建站欢迎大家使用!
由于之前使用的是yum安装的MongoDB 2.6(根据官网提示,如果你准备从2.4升级起来,需要先行升级至2.6版本,再进行3.0的升级),为了使用MongoDB多个新特性,如WiredTiger引擎,中文检索等,而根据MongoDB版本划分可知,双数为稳定版本,所以决定升级至最新的MongoDb 3.2(笔者写这篇文时MongoDB 3.3为最新版本)。
其实根据官网所给文档就能正常升级了,本文也是参考官网文档做升级,如果你准备参考本文进行操作,希望能在测试环境下测试没问题再上线以免出现问题。
升级开始:
退出MongoDB 2.6服务
service mongod stop
关于退出的方法有很多种,比如使用netstat -nltp找到进程号,使用然后杀死进程(不建议使用-9直接强退);
又比如进入Mongo客户端,使用db.shutdownServer()关闭;
亦或者使用官网推荐方法等等,这里就不一一列出来,请自行选择使用。
mongod --dbpath /var/mongod/data --shutdown
2.新增yum源
vim /etc/yum.repos.d/mongodb-org-3.0.repo
编辑内容:
[mongodb-org-3.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.0.asc
3.Yum升级开始
查看下yum信息
yum info mongodb-org
开始升级,等待升级完成
yum upgrade mongodb-org
4.尝试启动服务
service mongod start
发现启动失败?不要着急,让我们查看日志(本日志路径为默认路径,日志路径可以使用配置文件修改)
tail -f /var/log/mongodb/mongod.log
2016-06-27T02:53:32.961-0700 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted 2016-06-27T02:53:32.961-0700 I - [initandlisten] Fatal Assertion 28578 2016-06-27T02:53:32.961-0700 I - [initandlisten] ***aborting after fassert() failure
根据日志提示,是无法unlink sock文件,需要我们手动删除sock文件,删除后运行即可。
最后,升级3.0到3.2的方法重复之前步骤即可,把MongDB的YUM源修改成3.2即可完成升级。
注:根据官网提示,3.2默认开启WiredTiger引擎