分类目录归档:MongoDB

MongoDB数据库用户角色与权限管理

查看数据库

使用终端命令行输入 mongo 登陆 mongodb 之后切换到 admin 库,并认证后可查看所有数据库,操作如下所示:

[root@renwole.com ~]# mongo
MongoDB shell version v4.4.0
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1ea1-4343-9523-167a101973a9") }
MongoDB server version: 4.4.0
> use admin
> db.auth("admin","InaM6Aip#2JBlWwY")
1
> show dbs
admin      0.000GB
config     0.000GB
local      0.000GB

说明:1 表示认证成功,0 表示认证失败,认证失败后查看数据库无任何返回。

创建数据库及用户

创建一个 renwoledb 数据库并授权 renwole 用户为该库的 dbOwner 角色。另外、MongoDB数据库实行注册制,数据库内无内容时,无法查看到新建的数据库,操作如下:

> use renwoledb
> db.createUser(
        {
            user:"renwole",
            pwd:"renwolecom",
            roles:[{role:"dbOwner",db:"renwoledb"}]
        }
)

此时已完成了一库一账号的创建。如果创建用户提示无权限,请先使用超级管理员登录之后切换到对应的数据库再创建即可,如下所示:

MongoDB shell version v4.4.0
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("7be9-4c30-ad2e-2a5b58127ab7") }
MongoDB server version: 4.4.0
> use renwoledb
switched to db renwoledb
> db.createUser(
         {
             user:"renwole",
             pwd:"renwolecom",
             roles:[{role:"dbOwner",db:"renwoledb"}]
         }
 )
uncaught exception: Error: couldn't add user: command createUser requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1343:11
@(shell):1:1

> use admin
switched to db admin
> db.auth("root","renwolecompassword")
1
> use renwoledb
switched to db renwoledb
> db.createUser(
         {
             user:"renwole",
             pwd:"renwolecom",
             roles:[{role:"dbOwner",db:"renwoledb"}]
         }
 )
Successfully added user: {
	"user" : "renwole",
	"roles" : [
		{
			"role" : "dbOwner",
			"db" : "renwoledb"
		}
	]
}

添加 root 用户,拥有整个 MongoDB 最高权限,建议取消认证模式后,先进入到 admin 库,再添加 root 用户权限

> use admin
> db.createUser({user: "root",pwd: "renwolecom",roles: [ { role: "root", db: "admin" } ]})

密码修改

修改某个账号的数据库密码需要进入到该数据库,认证后再修改,否则报错,操作如下:

> use renwoledb
> db.changeUserPassword("renwole", "renwolecompwdnew")
> db.auth("renwole","renwolecompwdnew")
1

删除用户及数据库

删除用户(必须切换到admin使用最高权限删除某个用户角色)
> db.system.users.remove({user:"renwole"});
WriteResult({ "nRemoved" : 1 })

删除所有用户(必须具备超级管理权限才能删除)
> db.system.users.remove({})

删除数据库(必须切换到指定的数据库,然后再删除)
> use renwoledb
switched to db renwoledb
> db.dropDatabase()
{ "ok" : 1 }
>

你可能还需要查看 《MongoDB 基本常用管理命令详解
参阅:https://www.cnblogs.com/pl-boke/p/10063351.html

MongoDB 基本常用管理命令详解

创建认证用户

取消认证:

如不取消认证则无法创建用户,新安装的 MongoDB 默认没开启认证。

注释掉 /etc/mongod.conf 以下内容:

#security:
 # authorization: enabled

注意:创建用户完成后再加上参数并取消注释,修改MongoDB配置文件必须重启MongoDB服务。

重启MongoDB

$ systemctl restart mongod

登录mongo数据库:

$ mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.9
Server has startup warnings:
2017-11-20T14:50:48.633+0800 I STORAGE  [initandlisten]
2017-11-20T14:50:48.633+0800 I STORAGE  [initandlisten] ** WARNING: Readahead for /apps/mongo is set to 4096KB
2017-11-20T14:50:48.633+0800 I STORAGE  [initandlisten] **          We suggest setting it to 256KB (512 sectors) or less
2017-11-20T14:50:48.633+0800 I STORAGE  [initandlisten] **          //dochub.mongodb.org/core/readahead
2017-11-20T14:50:48.658+0800 I CONTROL  [initandlisten]
2017-11-20T14:50:48.658+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-11-20T14:50:48.658+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-11-20T14:50:48.658+0800 I CONTROL  [initandlisten]
>

在 admin 库中创建超级用户,超级用户用于管理其他用户的权限:

> use admin
db.createUser(
  {
    user: "admin",
    pwd: "admin",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

以上参数说明:

user:用户
pwd:用户密码
roles:一组角色设置(对象)
role:角色名
db:角色所控制的数据库名

MongoDB数据库角色说明:

普通用户角色:readreadWrite
数据库管理员角色:dbAdmindbOwneruserAdmin
集群管理员角色:clusterAdminclusterManagerclusterMonitorhostManager
数据库备份与恢复角色:backuprestore
所有数据库角色:readAnyDatabasereadWriteAnyDatabaseuserAdminAnyDatabasedbAdminAnyDatabase
超级用户角色:root,这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwneruserAdminuserAdminAnyDatabase)。
核心角色:__system

开启认证并登录 MongoDB 查看数据库:

$ mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.9
> use admin
switched to db admin
> show dbs
2017-11-20T15:23:04.399+0800 E QUERY    [thread1] Error: listDatabases failed:{
        "ok" : 0,
        "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
        "code" : 13,
        "codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:769:19
shellHelper@src/mongo/shell/utils.js:659:15
@(shellhelp2):1:1

提示无权限,下面开始认证数据库:

> db.auth("admin","admin")
1

说明:1表示认证通过,0表示认证无法通过。

再次获取数据库列表成功:

> show dbs
admin         0.078GB
local         0.078GB

创建MongoDB用户及数据库

创建普通用户:

> use renwolecomdb
db.createUser(
  {
    user: "renwolecom",
    pwd: "renwolecom",
    roles: [ { role: "readWrite", db: "renwolecomdb" } ]
  }
)

查看系统所有用户授权情况:

> use admin
> db.system.users.find()

查看当前库用户角色情况(包含当前数据库下所有用户):

> use renwolecomdb
> show users

创建数据库

use 命令只是向 MongoDB 注册database,并没有实际的创建,而使用 show dbs 命令也无法查看列表中新建的database

> use renwolecomdb
switched to db renwolecomdb

认证数据库:

> db.auth("renwolecom","renwolecom")

注意:这里需要说明:你每切换一个数据库都需要进行用户认证,否则会提示你没有授权,无法写入。

要在列表中显示新建的(renwolecomdb)数据库,至少需要插入一条文档数据,空数据库无法在列表显示。

现在在当前database中创建collection,并向集合中插入数据:

> db.renwolecomdb.insert({"name":"任我乐-知识分享的开发者技术博客"})
WriteResult({ "nInserted" : 1 })

查看数据库列表:

> show dbs
admin         0.078GB
local         0.078GB
renwolecomdb  0.078GB

已经显示刚刚新建的数据库名。

获取当前数据库详细信息:

> db.stats()
{
        "db" : "renwolecomdb",
        "collections" : 5,
        "views" : 0,
        "objects" : 13,
        "avgObjSize" : 82.46153846153847,
        "dataSize" : 1072,
        "storageSize" : 36864,
        "numExtents" : 5,
        "indexes" : 3,
        "indexSize" : 24528,
        "fileSize" : 67108864,
        "nsSizeMB" : 16,
        "extentFreeList" : {
                "num" : 0,
                "totalSize" : 0
        },
        "dataFileVersion" : {
                "major" : 4,
                "minor" : 22
        },
        "ok" : 1
}

说明:在进行任何集合操作前,都必须先切换到一个数据库。

MongoDB用户角色添加删除管理

给已存在的用户添加额外角色:

db.grantRolesToUser(
   "renwolecom",
   [ { role: "dbAdmin",db:"renwolecomdb"} ]
)

删除回收指定用户角色:

db.revokeRolesFromUser(
   "renwolecom",
   [{ role: "dbAdmin",db:"renwolecomdb"}]
)

查看当前数据库集合信息

获取集合信息(类似于关系型数据库的表):

> show collections
renwolecomdb
system.indexes

查看集合文档中数据

以下实例我们查询了集合 renwolecomdb 中的数据:

> use renwolecomdb
> db.auth("renwolecom","renwolecom")
1
> db.renwolecomdb.find().pretty()
{ "_id" : ObjectId("59f439c17a22e643554d915c"), "name" : "任我乐-知识分享的开发者技术博客" }

删除集合

集合删除语法格式如下:

db.renwolecomdb.drop()

删除数据库

删除指定数据库:

这时需要授权 renwolecom 用户删除角色即(dbAdmin),否则用户只有读写,并没有删除权限。

> use renwolecomdb
> db.dropDatabase()
{ "dropped" : "renwolecomdb", "ok" : 1 }

修改MongoDB用户密码信息

方法一:

以下命令不仅可以更新密码,还可以更新用户名:

> use admin
switched to db admin
> db.changeUserPassword("admin", "7utVM2RAfeAnDosq0jN20tu9jWkZQyNj")
> db.auth("admin","7utVM2RAfeAnDosq0jN20tu9jWkZQyNj")
1

已经修改成功,并且通过验证。

方法二(推荐):

只修改用户密码:

> use admin
switched to db admin
> db.changeUserPassword("admin", "7utVM2RAfeAnDosq0jN20tu9jWkZQyNj")

删除用户

将系统中所有关于 renwolecom 的用户删除:

> use admin
> db.system.users.remove({user:"renwolecom"});

只删除本数据中的 renwolecom 用户

> use renwolecomdb
> db.dropUser("renwolecom");

删除本数据下面所有用户

> use renwolecomdb
> db.dropAllUsers()

授权登录MongoDB

通过下面的方式可以直接登陆数据库并且已获得相应权限:

$ mongo renwolecomdb -u renwolecom -p
MongoDB shell version v3.4.9
Enter password:

更多命令可以输入以下命令查看:

> help

参考:

关于用户认证方法://docs.mongodb.com/manual/tutorial/enable-authentication/
关于用户管理方法://docs.mongodb.com/manual/reference/method/js-user-management/
关于角色管理方法://docs.mongodb.com/manual/reference/method/js-role-management/

MongoDB数据库定时自动备份Shell脚本

近期在生产环境中碰到MongoDB数据库备份问题,所以整理了一下脚本,大家拿去尽管享用。

MongoDB中创建备份账号

使用管理员账号登录MongoDB数据库:

[root@renwolecomdbs /]$ mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.9
> use admin
switched to db admin

认证:

> db.auth("admin","KM5d9KhJcW7O0lIAT")
1

下面开始创建MongoDB备份专有账号:

> db.createUser(
  {
    user: "renwolebackup",
    pwd: "RenwoleComACC",
    roles: [ { role: "backup", db: "admin" } ]
  }
)
> exit

创建备份脚本存放目录及文件

$ mkdir -p /etc/init.d/mongo
$ mkdir -p /apps/data/mongobackup_db
$ vim /etc/init.d/mongo/mongo-bak

添加以下内容:

#!/bin/bash  
sourcepath=''
targetpath='/apps/data/mongobackup_db'
nowtime=$(date +%Y%m%d)
start()
{
  ${sourcepath}mongodump --host 127.0.0.1:27017 -u renwolebackup -p renwolebackup --out ${targetpath}/${nowtime}
}
execute()  
{
  start
  if [ $? -eq 0 ]
  then
    echo "back successfully!"  
  else
    echo "back failure!"  
  fi
}
if [ ! -d "${targetpath}/${nowtime}/" ]
then
 mkdir ${targetpath}/${nowtime}
fi
execute
echo "============== back end ${nowtime} =============="

以上脚本中,请注意路径和文件夹根据你自己的需求修改。

注意:

以上参数是我自己的实际使用情况,在使用前一定要认真阅读代码中的设置情况。
如果上面代码执行时报格式错误,请在Windwos下使用Notepad++转换为Unix格式即可,具体操作如下:
编辑-文档格式转换-转换为unix格式。

删除过期7天备份

$ vim /etc/init.d/mongo/mongo-delete

添加如下删除内容:

#!/bin/bash  
targetpath='/apps/data/mongobackup_db'
nowtime=$(date -d '-7 days' "+%Y%m%d")
if [ -d "${targetpath}/${nowtime}/" ]
then
  rm -rf "${targetpath}/${nowtime}/"
  echo "=======${targetpath}/${nowtime}/===删除成功=="
fi
echo "===$nowtime ==="

设置权限

如果不给执行权限则无法运行脚本:

$ cd /etc/init.d/mongo
$ chmod +x mongo-bak
$ chmod +x mongo-delete

添加定时任务

为达到每天备份的目的,请设置任务计划:

$ mkdir -p /var/log/mongobaklog
$ crontab –e

添加以下自动备份和删除备份脚本内容:

30 03 * * * /etc/init.d/mongo/mongo-bak 1 > /var/log/mongobaklog/mongo-bak.log &
30 01 * * * /etc/init.d/mongo/mongo-delete 1 > /var/log/mongobaklog/mongo-delete &

前面所示分别为每日凌晨3.301.30执行该脚本的时间。

其中 mongo-bakmongo-delete 分别是脚本的名称。后面的是备份日志情况,如果有异常可以通过日志查询。

Centos 7 安装配置 MongoDB 数据库

什么是MongoDB?

MongoDB是一个基于分布式的文档数据库,由 C++ 语言编写,MongoDB是专为可扩展性,高性能和高可用性而设计的文件数据库。它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB能够提供高性能的数据读写操作。 MongoDB的本地复制和自动故障转移功能使您的应用程序具有企业级的可靠性和操作灵活性。

环境:

CentOS Linux release 7.4.1708 (Core) x86_64
IP addr:10.28.204.66

1.安装MongoDB

说明:官方不建议使用二进制压缩包安装,除非您有一个特定的需求。那咱就使用yum安装即可,功能都一样。

创建一个mongodb镜像源文件,这样就可以直接安装最新版MongoDB。

$ vim /etc/yum.repos.d/mongodb-org-3.4.repo

添加以下内容:

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=//repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=//www.mongodb.org/static/pgp/server-3.4.asc

执行以下命令开始安装:

$ yum install -y mongodb-org

安装完成后的目录如下:

/etc/mongod.conf – 配置文件
/var/lib/mongo – 数据目录
/var/log/mongodb/mongod.log – 日志文件

2.配置 mongod.conf

在生产环境中,我们不可能将重要数据放在系统盘,例如:/var/lib/mongo 否则一旦系统故障,你的数据可能将不复存在。因此我的数据盘是挂在apps目录,所以创建mongo数据存储目录。

创建数据库存放目录并赋予权限:

$ mkdir -p /apps/mongodb/data/db
$ chown -R mongod.mongod /apps/mongodb/data/db

设置SeLinux 安全上下文

$ sudo chcon -Rv --type=mongod_var_lib_t /apps/mongodb

如果未设置,无法启动且日志中会报如下错误:

exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /apps/mongodb/data/db, terminating

配置完成后的内容如下:

$ egrep -v "^$|^#|^;" /etc/mongod.conf

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
storage:
  dbPath: /apps/mongodb/data/db
  journal:
    enabled: true
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
net:
  port: 27017
  bindIp: 127.0.0.1,10.28.204.66  # Listen to local interface only, comment to listen on all interfaces.
security:
  authorization: enabled

注意:配置文件需要缩进2个空格,这是yaml语法所要求的,否则无法启动。

更多配置请参阅MongoDB文件选项

3.设置 SELinux

semanage命令是用来查询与修改SELinux默认目录的安全上下文。CentOS系统自带的chcon工具只能修改文件、目录等文件类型和策略,无法对端口、消息接口和网络接口等进行管理,semanage能有效胜任SELinux的相关配置工作。

安装semanage

$ yum provides semanage
$ yum -y install policycoreutils-python
$ semanage port -a -t mongod_port_t -p tcp 27017

你也可以直接关闭SELINUX:

$ vim /etc/selinux/config

默认值:

SELINUX=disabled

修改为:

SELINUX=enforcing

或者允许:

SELINUX=permissive

修改完成后记得重启服务器。此外我个人不建议关闭SELINUX,因为它关乎到Linux系统的本身安全。

4.设置 UNIX ulimit

您可以在系统提示符下使用该命令检查系统限制,如以下示例所示:

$ ulimit -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7243
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7243
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

官方推荐设置:

-f (file size): unlimited
-t (cpu time): unlimited
-v (virtual memory): unlimited [1]
-n (open files): 64000
-m (memory size): unlimited [1] [2]
-u (processes/threads): 64000

设置资源限制:

$ vim /etc/security/limits.conf

在文件末端添加以下内容:

mongod soft fsize unlimited
mongod hard fsize unlimited
mongod soft cpu unlimited
mongod hard cpu unlimited
mongod soft as unlimited
mongod hard as unlimited
mongod soft nofile 64000
mongod hard nofile 64000
mongod soft nproc 64000
mongod hard nproc 64000

以上参数说明:

mongod – 资源限制指定的用户名(你也可以用*代替全局)。
soft – 当前系统生效的设置值。
hard – 系统中所能设定的最大值。

注:这里需要说明 soft 的限制值不能比 hard 大。用 – 就表明同时设置了 soft 和 hard 的值。

5.启动mongod数据库

后期管理可以使用以下命令:

$ systemctl start mongod.service
$ systemctl restart mongod.service
$ systemctl stop mongod.service

6.查看mongod用户资源限制情况

查看mongod进程PID号:

$ ps -ef | grep mongod

mongod    1540     1  0 Oct18 ?        00:06:15 /usr/bin/mongod -f /etc/mongod.conf
root      6631  2256  0 08:39 pts/0    00:00:00 grep --color=auto mongod
$ cat /proc/1540/limits

Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             64000                64000                processes
Max open files            64000                64000                files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       7243                 7243                 signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

其中1540是Mongod的PID号。

如果不生效, 重启服务器即可。

7.设置 zone_reclaim_mode

$ echo 0 > /proc/sys/vm/zone_reclaim_mode
$ echo 2 > /proc/sys/vm/overcommit_memory

如果不设置其参数,长时间运行mongodb会出现以下报错信息:

[initandlisten] connection refused because too many open connections: 819 of 819

8.关闭Transparent Huge Pages (THP)大页面

请参阅《禁用 Transparent Huge Pages (THP) 透明巨大页面

注意:如果不设置启动的时候会有警告,但不影响使用。生产环境建议设置。


9.通过以下命令查看mongod启动信息及重要消息

$ cat /var/log/mongodb/mongod.log
...
** WARNING: Access control is not enabled for the database.
**          Read and write access to data and configuration is unrestricted.
...

上述日志中显示两条警告:

数据库未启用访问控制。
对数据的读写访问和配置是不受限制的。

这样是极其不安全的,下面来创建安全数据库:

10.连接到实例

$ mongo --port 27017
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017/
MongoDB server version: 3.4.9
Server has startup warnings:
2017-10-19T13:15:54.817+0800 I CONTROL  [initandlisten]
2017-10-19T13:15:54.818+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-10-19T13:15:54.818+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-10-19T13:15:54.818+0800 I CONTROL  [initandlisten]
>

11.创建用户管理员(在admin数据库中认证)

> use admin
db.createUser(
  {
    user: "myrenwole",
    pwd: "myrenwole",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
Successfully added user: {
        "user" : "myrenwole",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}
>

12.连接并认证

$ mongo --port 27017 -u "myrenwole" -p "myrenwole" --authenticationDatabase "admin"

13.添加额外权限用户

use test
db.createUser(
  {
    user: "renwolecom",
    pwd: "renwolecom",
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)
Successfully added user: {
        "user" : "renwolecom",
        "roles" : [
                {
                        "role" : "readWrite",
                        "db" : "test"
                },
                {
                        "role" : "read",
                        "db" : "reporting"
                }
        ]
}
>

添加完成,查看是否存在警告:

$ mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.9
>

已经没有警告信息了。

调用连接MongoDB数据库必须要添加必要参数,例如:

var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost', 'test', 27017, {user: 'renwolecom', pass: 'renwolecom'});

说明:当mongo命令连接失败时,请尝试删除mongod.lock文件,该文件位于你的数据库目录下,之后重启mongodb数据库,如果问题依旧,请查看日志具体报错。

14.配置Firewall防火墙

$ firewall-cmd --zone=public --add-port=27017/tcp --permanent
$ firewall-cmd --reload

15.卸载/删除MongoDB

$ systemctl stop mongod
$ yum erase $(rpm -qa | grep mongodb-org)
$ rm -rf /var/log/mongodb
$ rm -rf /var/lib/mongo

注意:此过程将完全删除MongoDB数据库,因此请确保在继续之前备份所有配置和数据。

结语:

关于MongoDB的安装配置已经完成,说难不难,说不难也有些坑,不过主要还是配置比较麻烦。其实MongoDB的基础配置已经可以满足生产需求,除非有特殊要求,需要手动添加配置项。后期我也会写一些关于MongoDB的使用方法。

参考教程:

//docs.mongodb.com/manual/administration/install-on-linux/