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
参考官方文档即可。