文档目的

Linux系统中安装Mongodb应用程序,并设置基本的安全权限,保证数据库的安全

 

基础知识

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

 

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

常用命令

命令

用法

用配置文件启动mongo

mongod --config /etc/mongod.conf --port 27017 --dbpath /data/db1

重启mongo

service mongod restart

mongo加入开机启动

 chkconfig mongod on

创建数据库

use database_name

查看数据库

show dbs

插入数据

db.database_name.insert({name:名字})

删除数据库

db.dropDatabase()

删除集合

db.collection.drop()

插入文档

db.COLLECTION_NAME.insert(document)

查看已插入文档

db.col.find()

更新文档

db.collection.update()


db.collection.save()

删除文档

db.collection.remove()

mongodb监控

mongostat


mongotop

  

所需软件

MongoDB server version: 3.4.1


系统环境

操作系统:centos 7 (3.10.0-327.36.3.el7.x86_64)

 

操作步骤

1.配置yum仓库

vim /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


wKioL1h64ffBLg9JAAAZAK7xV9Y636.png


2.安装mongodb应用

 

sudo yum install -y mongodb-org

 

3.用无访问权限控制方式开启mongo

mongod --port 27017 --dbpath /data/db1  &

 

注:如果没有/data/db1 文件夹,则新建一个 mkdir -p /data/db1

 

4.设置管理员账号密码

登入mongo

mongo --port 27017

 

创建管理员用户

use admin

db.createUser(

  {

    user: "myUserAdmin",

    pwd: "abc123",

    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]

  }

)

 

 

5.配置mongo配置文件开启强制访问权限控制功能

 

vim /etc/mongod.conf

 

修改安全选项

 

security:

  authorization: enabled


wKiom1h64ifw6JPUAAAEhbIWtkY582.png


6.应用配置文件开启mongo

mongod --config /etc/mongod.conf --port 27017 --dbpath /data/db1

 

 

注:也可以用以下命令强制访问权限控制开启功能开启mongo

mongod --auth --port 27017 --dbpath /data/db1

 

注:如果有开启SELinux,需要配置以下语句

semanage port -a -t mongod_port_t -p tcp 27017

7.创建一般用户账户

mongo

 

use test

db.createUser(

  {

    user: "myTester",

    pwd: "xyz123",

    roles: [ { role: "readWrite", db: "test" },

             { role: "read", db: "reporting" } ]

  }

)

 

常见问题

参考文献

https://docs.mongodb.com/manual/tutorial/enable-authentication/

 

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/