本文为转载,原文:Centos下mongodb3.4的安装与配置
mongodb安装
yum命令安装
本次安装使用的是yum命令安装,在安装志强,我们先执行以下命令更新下yum。
yum update
然后添加mongodb的yum源。
cd /etc/yum.repos.d/
vim mongodb-3.4.repo
将以下内容添加到mongodb-3.4.repo中
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
这里可以修改 gpgcheck=0, 省去gpg验证
最后再执行以下命令进行安装:
yum install -y mongodb-org
执行完命令后,耐心等待即可。
验证是否成功
我们再来执行以下命令验证下我们是否安装成功:
mongo --version

这个结果便说明已经安装成功。
我们可以通过以下命令查看安装后的相关文件目录:
whereis mongod

/etc/mongod.conf就是mongodb的配置文件。
启动,停止服务
centos7以下的启动、停止服务命令如下:
sudo service mongod start //启动服务
sudo service mongod stop //停止服务

centos7以上的启动停止服务命令如下:
systemctl start mongod.service //启动服务
systemctl stop mongod.service //停止服务
systemctl status mongod.service //查看服务状态

在终端输入
mongo命令即可进入mongodb的shell脚本:
可以输入些简单的命令验证测试下:

配置授权登录
之前直接输入mongo命令进入脚本,是没有使用用户名和密码登录的。那么,我们要如何才能使用用户名密码来管理我们的mongodb呢?
首先,我们得创建用户,同样我们先使用mongo命令进入脚本,并一次执行以下命令用以创建用户:
> mongo
> use admin
> db.createUser({
user:"root",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
})

user:用户名
pwd:密码
roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色选择我在文章后面补充。
然后,我们在修改下配置文件,先在mongo脚本里输入exit退出mongo。之后再输入以下命令修改配置文件:
vim /etc/mongod.conf

修改图中红色框的内容,注释
bindIp,解开security的注释,并在下方添加authorization: enabled即可。之后再重启mongodb,重启的命令之前已经说过了,centos7之前与之后有些差别。
然后再试下
mongo命令。
我们发现
show dbs命令报错了,这是因为我们开启了认证,但是我们并没有登录。我们可以用以下命令来添加授权:
> use admin
> db.auth("root","123456")

这样我们就可以继续访问mongodb了。
或者我们可以用我们的用户名密码登录:
mongo 127.0.0.1:27017/admin -u root -p

这样也是可以的。
mongodb角色
内置角色
-
数据库用户角色:read、readWrite; -
数据库管理角色:dbAdmin、dbOwner、userAdmin; -
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; -
备份恢复角色:backup、restore; -
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase -
超级用户角色:root, 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) -
内部角色:__system
具体角色
-
read:允许用户读取指定数据库 -
readWrite:允许用户读写指定数据库 -
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile -
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 -
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 -
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 -
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 -
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 -
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 -
root:只在admin数据库中可用。超级账号,超级权限
完
本文为原创,转载请注明出处