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

 

 

 

 

 

猜你喜欢

转载自squll369.iteye.com/blog/2242719
今日推荐