Mongodb3在centos的安装备忘

1、通过官方文档安装mongodb。
参考 https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/
1.1 配置yun源

# vi/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

其中我所在的微软云服务器DNS与 repo.mongodb.org 不通,所以手动配置了hosts 文件

#vi /etc/hosts 增加如下内容 ,webtatic 是php5.4 yum的更新地址。

178.62.92.159 uk.repo.webtatic.com
54.192.150.185 repo.mongodb.org
45.55.104.9 repo.webtatic.com
45.55.104.9 us-east.repo.webtatic.com
163.47.8.16 sp.repo.webtatic.com
46.101.64.32 uk.repo.webtatic.com

1.2 yum方式安装mongodb

#yum install -y mongodb-org

至此,安装完毕。

2、配置mongodb

2.1、自动启动mongodb ,yum安装自动将 mongodb加入 启动列表,所以无需理会
2.2、用命令 #ps aux |grep mongod 检查是否在运行
2.3、建立自定义数据库位置

#mkdir /data/mongodb
#mkdir /data/mongodb/db
#chown -R mongod:mongod /data/mongodb

2.4、修改配置文件

#vi /etc/mongod.conf

修改两个地方
dbPath: /data/mongodb/db
pidFilePath: /data/mongodb/mongod.pid

2.5、开通端口号

# vi /etc/sysconfig/iptables

增加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT

加入自动启动
#chkconfig mongod on

2.6、重启服务

kill -9 mongodb的进程
service mongod start

每次都会比较慢

3、建立超管账号、密码

# mongo
MongoDB shell version: 3.0.7
......
> use admin
switched to db admin
> db.createUser({user: "admin",pwd: "admin",roles: [ "dbAdmin" ]})
Successfully added user: { "user" : "admin", "roles" : [ "dbAdmin" ] }
> exit
bye

其他

设置ulimit -n和ulimit -u的值大于20000。如果ulimit的值设置过低的话,当MongoDB处于 频繁访问的状态下,将会产生错误,最终导致无法连接到MongoDB实例。
# ulimit -n 25000
# ulimit -u 25000

查看日志发现

[initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-10-28T20:45:19.603+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'

经过查询是 mongoDB 禁用大内存页面 transparent_hugepage=never

参考 http://docs.mongodb.org/master/tutorial/transparent-huge-pages/ 官方文件就能搞定
或者

# vi /etc/init.d/mongod
#顶部行首添加
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

还有一个警告是

[initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.

mongodb当前限制:1024 processes, 64000 files
mongodb建议要求:processes = 0.5*files=32000(至少)

处理方法如下


# ps -ef | grep mongod
查看进程编号
# cat /proc/进程编号/limits
可以看到限制:Max processes,Max open files

修改配置文件 /etc/security/limits.conf,添加配置信息:
[root@localhost ~]# vi /etc/security/limits.conf
mongod soft nofile 64000
mongod hard nofile 64000
mongod soft nproc 32000
mongod hard nproc 32000
重启 mongod 服务:

另处理 ulimit内容

#vi /etc/profile

在最后添加
ulimit -n 64000
ulimit -u 64000

或者 编辑/etc/security/limits.d/90-nproc.conf

将 * soft nproc 1024
改为 * soft nproc 33000

然后重启服务即可。如果重启失败,查看是否有mongod服务在运行。kill后,再重启即可。

kill -9 mongodb的进程
service mongod start

每次都会比较慢

Mac OS 安装 mongodb
参考官方文档即可。

发布者

admin

互联网web开发管理

《Mongodb3在centos的安装备忘》有1个想法

  1. kill -9 mongodb的进程
    这个是强制杀死mongo进程,可能会导致数据丢失,
    kill mongodb的进程,这样会发送退出信号,正常退出不丢数据。

评论已关闭。