一、安装
1、使用Xshell远程连接Centos 服务器,并新建文件
- 创建仓库文件:
vi /etc/yum.repos.d/mongodb-org-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.4.asc
2、通过yum安装
yum install -y mongodb-org
二、修改配置
1、安装完成后,修改配置信息
vi /etc/mongod.conf
- 如果要远程连接,需要修改bindIp,修改完成后保存
net:
port: 27017 #数据库端口,如果要远程连接,服务器记得开放端口
bindIp: 127.0.0.1 # 默认是 127.0.0.1 只限于本机连接,如果要远程连接修改为:0.0.0.0
- MongoDB默认将数据文件存储在/var/lib/mongo目录,默认日志文件在/var/log/mongodb中。如果要修改,可以在/etc/mongod.conf 配置中指定备用日志和数据文件目录。
三、启动
1、启动MongoDB
启动命令:
service mongod start
停止命令:
service mongod stop
重启命令:
service mongod restart
状态命令:
service mongod status
- 启动完成后,通过命令查看MongoDB是否启动成功
service mongod status
- 显示以下信息代表启动成功
2、设置开机自启
chkconfig mongod on
四、使用方法
1、创建数据库
登录,默认没有账号密码
[root@localhost ~]# mongo
创建demo数据库(如果数据库不存在,则创建数据库,否则切换到指定数据库)
> use demo
switched to db demo
查询所有数据库(我们刚创建的数据库demo并不在数据库的列表中,要显示它,我们需要向demo数据库插入一些数据。)
> show dbs;
admin 0.000GB
local 0.000GB
向w_demo表中插入数据
> db.w_demo.insert({"name":"王明","age":"10","grade":"小学"})
WriteResult({ "nInserted" : 1 })
再次查看
> show dbs;
admin 0.000GB
demo 0.000GB
local 0.000GB
五、创建用户
1、创建账号密码
- 首先切换到admin数据库
use admin
- 创建超级用户
先创建一个有grant权限的用户,如root权限的用户:
> db.createUser({user: "root",pwd: "123",roles: [{ role: "root", db: "admin" }]})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
- 创建所有数据库管理用户
db.createUser({ user: "admin", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }]})
- 创建单个数据库用户
use demo
db.createUser({user: "test",pwd: "123456",roles: [{ role: "readWrite", db: "demo" }]})
使用说明:
user:用户名
pwd:密码
db:指定该用户的数据库,admin是用于权限控制的数据库,如果没有需要新建一个
roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选:
Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
具体角色的功能:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
六、登录验证
1、开启登录验证
- 编辑mongodb的配置文件‘
vi /etc/mongod.conf
- 在security一项中,编写如下配置,保存
security:
authorization: enabled
- 保存后,重启mongod服务
service mongod restart
七、远程连接
1、通过Navicat Premium远程连接
- 点击连接,选择mongoDB
- 填写以下信息
- 登录成功