本文主要内容
1、安装MongoDB
2、添加MongoDB账户密码
3、创建数据库并授权

安装MongoDB

1、创建repo仓库

vi /etc/yum.repos.d/mongodb-org-5.0.repo

2、把下面的内容复制到文件中 保存退出

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

注意,上面的数字比如5.0可以替换成其他已有的版本号,参见

下面这个链接可以选择linux版本

Index of redhat

假设我是centos 7的

Index of mongodb-org

我可以选择3.4版本

3、yum安装

yum install -y mongodb-org

警告:外网下载很慢 

然后发现下载很慢,我就把图中列出的rpm包手动下载了,然后删除掉前面创建的repo文件。

rm /etc/yum.repos.d/mongodb-org-5.0.repo

我的linux是centos 7 ,我准备下载5.0的MongoDB,我从下面这个链接下载rpm

Index of RPMS

 成功安装

 4、修改配置文件

vi /etc/mongod.conf

把bindIP改成 0.0.0.0所有的机器都可以访问

bindIp: 0.0.0.0 

5、启动/关闭mogodb

systemctl start mongod
systemctl enable mongod

6、有时候重启报错开机无法启动的问题,报错子进程启动失败

chown mongod:mongod /tmp/mongodb-27017.sock

添加账户密码

1.切换到admin数据库

mongo 127.0.0.1:27017
> use admin

2.添加账户root,密码为123456

db.createUser({ user: “root”, pwd: “123456”, roles: [{ role: “userAdminAnyDatabase”, db: “admin” }] })

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


3.修改/etc/mongod.conf文件, 增加配置

security:
authorization: enabled

4.重启MongoDB服务

systemctl restart mongod

5.测试连接 bin/mongo 127.0.0.1:27017 切换到admin库并登录验证

[root@localhost ~]# mongo 127.0.0.1:27017
MongoDB shell version v5.0.14
connecting to: mongodb://127.0.0.1:27017/test?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("576f7b36-6334-4b33-928f-a65bb3bbeebe") }
MongoDB server version: 5.0.14
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
> use admin
switched to db admin
> db.auth("root", "123456")
1
>

创建超级用户

db.createUser({"user":"admin","pwd":"123456","roles":["root"]})

创建数据库并授权

1、创建数据库

MongoDB通过命令use 数据库名创建数据库。如果数据库不存在,该命令将创建一个数据库,否则将返回已有数据库。

如果想使用名为qapi的数据库,可通过如下命令

> use qapi
switched to db qapi

要检查当前数据库,可使用db命令:

如果要列出全部数据库,可使用show dbs命令:

> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB

您刚创建的数据库(mydb)不在列表中,空数据库不会显示,需要向其插入至少一个文档。

> db.site.insert({"name":"weiy"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
qapi 0.000GB

2、直接在当前库中创建用户并授予相关权限

> use qapi
>db.grantRolesToUser("root", [ { role:"dbOwner", db:"qapi"}]);

 如果是新用户,则执行

db.createUser({
user: 'root1',
pwd: '123456',
roles: [ { role: "readWrite", db: "qapi" } ]
});

使用新用户执行插入数据

> db.auth("root1", "123456")
1
> db.site.insert({"name":"weiy"})
WriteResult({ "nInserted" : 1 })