一、先查看自己的系统是什么,再看是什么版本
[root@Centos ~]# lsb_release -a
bash: lsb_release: command not found
查看lsb_release属于哪个软件包
yum provides */lsb_release
有显示 redhat-lsb-core-4.1-27.el7.centos.1.x86_64
[root@Centos ~]# yum -y install redhat-lsb-core-4.1-27.el7.centos.1.x86_64
安装并测试
[root@Centos ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
二、官网下载对应版本的文件
$ cd /usr/local
本地传上来或者wget
$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz
$ tar zxvf mongodb-linux-x86_64-4.0.0.tgz
$ mv mongodb-linux-x86_64-4.0.0 /usr/local/mongodb
配置环境变量
$ vim /etc/profile
在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:
#Set Mongodb
export PATH=/usr/local/mongodb/bin:$PATH
保存后通过下面的命令使环境变量生效:
$ cd ~
$ source /etc/profile
创建数据库目录
$ cd /usr/local/mongodb
$ touch mongodb.conf
$ mkdir db
$ mkdir log
$ cd log
$ touch mongodb.log
修改mongodb配置文件。
vim /usr/local/mongodb/mongodb.conf
添加以下内容
port=27017 #端口
dbpath= /usr/local/mongodb/db #数据库存文件存放目录
logpath= /usr/local/mongodb/log/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=true #以守护进程的方式运行,创建服务器进程
maxConns=100 #最大同时连接数
#noauth=true #不启用验证
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=wiredTiger #存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
auth = true
设置文件夹权限
$ cd /usr/local/mongodb
$ chmod 777 db
$ chmod 777 log
启动mongodb
$ cd ~
$ mongod --config /usr/local/mongodb/mongodb.conf
或者
$ cd /usr/local/mongodb/bin
$ ./mongod -f /usr/local/mongodb/mongodb.conf
查看端口 netstat -ntulp | grep 27017
进入mongo
$ mongo
关闭数据库
$ ps aux |grep mongodb
$ sudo kill 5314
创建用户赋予角色,创建库,库如果没出来那么就在库钟加入数据即可
其中auth,在赋予完角色后再恢复至true,重启即可
查看数据库
>show dbs
创建库test
>use test
创建库后,但show dbs不显示,是因为没数据,插入一条数据即可
>db.test.insert({"name":"test"})
创建用户并授予角色
>use admin
>db.createUser( {user: "test01",pwd: "123456",roles: [ { role: "dbAdmin", db: "test" } ]})
验证是否创建成功
> db.auth("test01","123456")
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
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
具体角色:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限。
三、设置开机自动启动
1、sh脚本
$ cd ~
$ mkdir shell
$ cd shell
$ vim mongod_start.sh
$ vim mongodb.log
新增mongod_start.sh,可以测试脚本./mongod_start.sh
#!/bin/bash
# pkill -9 mongod;
/usr/local/mongodb/bin/mongod --shutdown --dbpath /usr/local/mongodb/db/;
nohup /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/db --logpath=/usr/local/mongodb/log/mongodb.log > /root/shell/mongod.log 2>&1 &
设置权限777
$ chmod 777 mongod_start.sh
2、脚本无误后可添加脚本到开机自启动
$ vim /etc/rc.d/rc.local
文件后面追加
/root/shell/mongod_start.sh
chmod +x /etc/rc.d/rc.local