Linux安装并配置mongodb

一. 官网下载对应版本的mongodb

官网下载链接 MongoDB Download Center
我下载的版本是 mongodb-linux-x86_64-3.2.10.tgz

二. 拷贝至linux服务器并解压

将压缩包拷贝到 /usr/local 目录下
解压, 解压后重命名为mongodb

tar -zxvf mongodb-linux-x86_64-3.2.10.tgz

三. 分别创建数据文件夹日志文件夹配置文件

mkdir /var/mongodb
mkdir /var/mongodb/data			# 数据文件夹 
mkdir /var/mongodb/data/db		# db文件夹 
mkdir /var/mongodb/logs			# 日志文件夹

创建mongodb.conf文件,放在 /var/mongodb/mongodb.conf下, 内容如下:

port=27017
dbpath=/var/mongodb/data/db
logpath=/var/mongodb/logs/mongodb.log
pidfilepath=/var/mongodb/mongo.pid
fork=true
logappend=true
#auth=true

四. 添加开机启动项 [ vi编辑器的使用 http://dwz.cn/4OoIe8 ]

vi + /etc/rc.d/rc.local   
将下面的mongodb启动命令追加到本文件中:  
/usr/local/mongodb/bin/mongod --config /var/mongodb/mongodb.conf

五. Mongodb用户权限配置

mongodb权限说明:

mongodb是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。 
切换到admin数据库,添加的账号才是管理员账号。 
用户只能在用户所在数据库登录,包括管理员账号。 
管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。

着重强调一点, 初次安装使用mongodb时,一定要记得授权和做相应的防漏洞加固!网上大多数教程只说怎么安装使用mongodb,没有强调授权的重要性! 具体参考阿里云技术分享: MongoDB数据库未授权访问漏洞及加固_技术分享_技术运维问题_漏洞扫描-阿里云

以下是基本的授权配置

# 启动mongodb,并进入admin数据库

cd /usr/local/mongodb/bin		# 进入mongo目录
./mongo					# 启动mongo
use admin				# 使用admin库

# 创建root全局账户,并授权

db.createUser({
	user: "admin2017test",
	pwd: "admin2017test@2017",
	roles:[{
		"role":"userAdminAnyDatabase","db":"admin"}]
})

use db_test # 创建自己的数据库
# 为自己创建的数据库新建管理员

db.createUser({
    user: "testUser",
    pwd: "testUserPwd",
    roles: [ { role: "dbOwner", db: "db_test" } ]
})

# 开启配置文件中的auth = true选项

port=27017
dbpath=/var/mongodb/data/db
logpath=/var/mongodb/logs/mongodb.log
pidfilepath=/var/mongodb/mongo.pid
fork=true
logappend=true
auth=true

更多关于添加管理员和授权操作参见:MongoDB – Add Users and Authenticate

更多关于MongoDB加固内容参见:MongoDB security checklist

附: mongodb相关的常用操作指令

# 启动mongodb
/usr/local/mongodb/bin/mongod --config /var/mongodb/mongodb.conf 
      
netstat -lanp |grep 27017               # 查看进程 27017
pkill mongod				# 停止mongodb
ps aux|grep mongo    		        # 查看mongodb安装目录

附: mongodb参考文档
极客学院 Mongodb教程 The Little MongoDB Book
Mongodb中文文档 MongoDB 3.4 中文文档