CentOS7下源码安装部署MongoDB

1.点击进入 MongoDB官网

MongoDB官方源码包含4部分

mongodb-org-server:服务端
mongodb-org-mongos:守护进程
mongodb-org-shell:命令行
mongodb-org-tools:其他工具

2.本人使用wget 下载

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.22.tgz

3.解压

tar -zxf mongodb-linux-x86_64-3.2.22 -C /home/soft/

mv mongodb-linux-x86_64-3.2.22 mongodb

4.在当前路径【/home/soft/mongodb】下创建文件夹

mkdir -p ./data/db

​
mkdir ./logs

​

5、进入/usr/local/mongodb/bin 目录下,创建配置文件

vi mongodb.conf

#数据文件存放目录

dbpath =/home/soft/mongodb/data/db

#日志文件存放目录

logpath =/home/soft/mongodb/logs/mongodb.log port = 27017

#端口

port = 27017

#以守护程序的方式启用,即在后台运行

fork = true

nohttpinterface = true

#建议练习条件下为false 认证字段

auth=true

bind_ip=0.0.0.0

其他配置文件参考:

在mongodb.conf 中添加以下内容

port=27017 #端口
dbpath= /usr/mongodb/mongodb-4.0.10/db #数据库存文件存放目录
logpath= /usr/mongodb/mongodb-4.0.10/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  #设置成全部ip可以访问,这样就可以在windows中去连虚拟机的MongoDB,也可以设置成某个网段或者某个ip1234567891011

6、进行环境变量配置, 打开配置文件 /etc/profile

 

vi /etc/profile

在后面添加一条语句

添加这条语句:export PATH=/home/soft/mongodb/bin:$PATH

7、配置文件生效
source /etc/profile

8.启动mongo

配置⽂件示例

vim mongo.conf
-------------
dbpath=/home/soft/mongodb/data/mongo/
port=27017
bind_ip=0.0.0.0
fork=false
logpath = /home/soft/mongodb/data/mongo/mongodb.log
logappend = true
auth=false

指定配置文件启动

./mongod -f ../mongo.conf

mongod --config /home/soft/mongodb/mongodb.conf

新增用户和数据库

 mongo shell

MongoDB shell version: 3.2.22

connecting to: shell

> use admin

switched to db admin

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

Successfully added user: {

"user" : "admin",

"roles" : [

{

"role" : "root",

"db" : "admin"

}

]

}

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

1

> use testdb

switched to db testdb

> db.createUser({user:"testdb",pwd:"testdb",roles:[{"role":"dbOwner","db":"testdb"}]})

Successfully added user: {

"user" : "testdb",

"roles" : [

{

"role" : "readWrite",

"db" : "testdb"

}

]

}

roles 详解如下:

数据库用户角色(Database User Roles)

  • read : 授权User只读数据的权限,允许用户读取指定的数据库
  • readWrite  授权User读/写数据的权限,允许用户读/写指定的数据库

数据库管理角色(Database Admininstration Roles)

  • dbAdmin:在当前的数据库中执行管理操作,如索引的创建、删除、统计、查看等
  • dbOwner:在当前的数据库中执行任意操作,增、删、改、查等
  • userAdmin :在当前的数据库中管理User创建、删除和管理用户。

备份和还原角色(Backup and Restoration Roles)​​​​​​​

  • backup
  • restore

跨库角色(All-Database Roles)

  • readAnyDatabase:授权在所有的数据库上读取数据的权限,只在admin 中可用
  • readWriteAnyDatabase:授权在所有的数据库上读写数据的权限,只在admin 中可用
  • userAdminAnyDatabase:授权在所有的数据库上管理User的权限,只在admin中可用
  • dbAdminAnyDatabase: 授权管理所有数据库的权限,只在admin 中可用

集群管理角色(Cluster Administration Roles)

  • clusterAdmin:授权管理集群的最高权限,只在admin中可用
  • clusterManager:授权管理和监控集群的权限
  • clusterMonoitor:授权监控集群的权限,对监控工具具有readonly的权限
  • hostManager:管理server

超级角色(super master  Roles)

  • root :超级账户和权限,只在admin中可用le

关闭服务

 先通过shell连上服务器:

 mongo

 use admin

 db.shutdownServer()

 或者直接kill -15 <pid>,注意kill -9 可能会导致数据文件损坏

     (adsbygoogle = window.adsbygoogle || []).push({});  

猜你喜欢

转载自blog.csdn.net/taoanbang/article/details/110231364