CentOS7 64 下安装MongoDB3.0


新购置了一台阿里云(CentOS7 64),要在上面安装MongoDB 3.0, 这里记录一下整个安装的过程,以供以后参考:

 

开始都是使用root操作的:

 

1. 使用yum 安装numactl

 

yum install -y numactl

  

 


2. 安装mongoDB,(参考的官网:http://docs.mongodb.org/master/tutorial/install-mongodb-on-red-hat/)


    a. 添加mongoDB的源:新建一个文件/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=0
enabled=1
 

 

    b. 用yum安装mongoDB

 

yum install -y mongodb-org

 

    安装完成后,有2个目录要注意:


 


   /var/lib/mongo ---  数据库的数据存放目录


   /var/log/mongodb --- mongoDB的运行日志文件


 


   还有一个配置文件要注意:


   /etc/mongod.conf --- mongoDB的配置项都在里面


 


   用yum安装,会帮我们做好mongoDB的启动脚本:


   /etc/init.d/mongod


    


   有了这个启动脚本,我们可以用如下的命令来操作我们的mongoDB:


 


service mongod start  - 启动mongoDB
service mongod stop - 关闭mongoDB
service mongod restart - 重启mongoDB

    但是现在还不急启动,因为不建议用root来启动我们的mongoDB, 所以我新建了一个新的账户(mongodb)专门用来启动mongoDB,怎么在CentOS下建立新账户,我这里就不记录了,应该都会。

 

    新账户建立好以后,我切换到这个账户(mongodb)下,使用 sudo service mongod start启动,要求输入mongodb这个账户的密码,密码输入完成后,结果出错:

 

mongodb不在sudoers文件中。此事将被报告。

 

    这个是由于sudo命令可以让你以root身份执行命令,来完成一些我们这个帐号完成不了的任务。其实并非所有用户都能够执行sudo,因为有权限的用户都在/etc/sudoers中呢,所以我们修改这个文件,必须切换到root用户了,在root ALL=(ALL:ALL) ALL 后面加上了一段,


root       ALL=(ALL:ALL) ALL  
mongodb ALL=(ALL:ALL) ALL

 

    这样再切换回mongodb启动, sudo service mongod start,可以正常启动了,启动的同时,用taill看着log文件,看到NETWORK  [initandlisten] connection accepted from 127.0.0.1:46370 #1 (1 connection now open),就是启动ok了。

    然后,我们执行mongo命令链接服务器, 会出来如下警告:

 

2015-09-11T13:46:11.119+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-09-11T13:46:11.119+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-09-11T13:46:11.119+0800 I CONTROL [initandlisten]
2015-09-11T13:46:11.120+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-09-11T13:46:11.120+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-09-11T13:46:11.120+0800 I CONTROL [initandlisten]
2015-09-11T13:46:11.120+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.
 

   这些警告是干什么的,我不记录了,网上可以查到,我只记录我怎么解决的:

 

   1. 前2个警告,打开那个启动脚本  /etc/init.d/mongod, 在“start()” 前加了一段(start就是启动函数):

 

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
  

   2. 第3个警告,soft rlimits too low , 进入/etc/security/limits.d目录,修改20-nproc.conf文件(不一定是这个)

*          soft    nproc     4096(修改这个数字到32768)
root soft nproc unlimited

 

    注意,这里修改保存,请使用root账户了.

 

    最后,我们重新切换回mongodb用户,sudo service mongod restart(重启服务),启动完成后, 再用mongo命令连接服务器,没有警告了,大功告成!

 

[mongodb@iZ114z54nuyZ init.d]$ mongo
MongoDB shell version: 3.0.6
connecting to: test

 

 

 

 

 

 

本站声明
本文转载自:http://squll369.iteye.com/blog/2242719     作者:squll369     发布日期:2015-09-11     本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。


 
© 2014-2016 ITdaan.com 粤ICP备14056181号