mongodb 简介 及安装自启动 学习资料

一、MongoDB 简介

mongodb介绍

1.MongoDB是一个开源文档数据库,提供高性能,高可用性和自动扩展。

2.MongoDB中的记录是一个文档,它是由字段(key=>vlaue)组成的数据结构MongoDB文档与JSON对象相似。字段的值可能包括其他文档,数组和文档数组。

一个MongoDB文档。

主要特点

1.高性能

MongoDB提供了高性能的数据持久性。尤其是,

  • 对嵌入式数据模型的支持减少了数据库系统上的I / O活动。
  • 索引支持更快的查询,并且可以包含来自嵌入文档和数组的键。

2.存储性

比较适合存储大量的没有规则无序的数据。

存储量单表达到了1PB 级别的数据

3.结构



二、安装合和配置

1.安装方式

两种方式

yum方式安装:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

手动通用安装:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-linux/

参考官方网站 

选择通用二进制包安装比较方便

[root@mongodb soft]# ls 
mongodb-linux-x86_64-rhel62-3.6.5.tgz

[root@mongodb soft]# tar zxf mongodb-linux-x86_64-rhel62-3.6.5.tgz -C /usr/local /mongodb

解压到指定的路径即可 不用编译

[root@mongodb soft]# cd /usr/local/mongodb/
[root@mongodb mongodb]# ls

bin  data  GNU-AGPL-3.0  log.txt  MPL-2  README  THIRD-PARTY-NOTICES

看到这些文件 说明就安装完了 简单吧

2.启动

[root@mongodb bin]# ls
bsondump         mongo   mongodump    mongofiles   mongoperf    mongorestore  mongostat

install_compass  mongod  mongoexport  mongoimport  mongoreplay  mongos        

mongo   客户端脚本

mongod   启动脚本

[root@mongodb bin]# cd /usr/local/mongodb/bin/               

[root@mongodb bin]#./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log.txt --fork

--dbpath  数据文件的路径 默认没有自行创建

--logpath  日志文件的路径 指定好路径系统自动生成

--fork       后台模式     开启后台模是 必须指定log路径

注意:不用后台模式的话会一直在前台 无法进行操作 退出的话 程序也会停止

这样启动 很麻烦 可以编写一个启动脚本 

[root@mongodb init.d]# vim mongod

#!/bin/bash
#
# chkconfig: - 85 15
# description: Mongodb database.
# processname: mongod
# Source function library
#启用系统函数
. / etc / rc .d / init .d / functions
#启动加的选项
OPTIONS = " --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log.txt --fork"
mongod = "/usr/local/mongodb/bin/mongod"
lockfile = / var / lock / subsys / mongod
start ( )
{
   echo - n $ "Starting mongod: "
   daemon $mongod $OPTIONS
   RETVAL = $ ?
   echo
   [ $RETVAL - eq 0 ] && touch $lockfile
}
 
stop ( )
{
   echo - n $ "Stopping mongod: "
   killproc $mongod - QUIT
   RETVAL = $ ?
   echo
   [ $RETVAL - eq 0 ] && rm - f $lockfile
}
 
restart ( ) {
         stop
         start
}
ulimit - n 12000
RETVAL = 0
 
case "$1" in
   start )
     start
     ; ;
   stop )
     stop
     ; ;
   restart | reload | force - reload )
     restart
     ; ;
   condrestart )
     [ - f $lockfile ] && restart || :
     ; ;
   status )
     status $mongod
     RETVAL = $ ?
     ; ;
   * )
     echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
     RETVAL = 1
esac
exit $RETVAL

给权限

[root@mongodb init.d]# chmod +x mongod 

[root@mongodb init.d]# service mongod start
Starting mongod: about to fork child process, waiting until server is ready for connections.
forked process: 2035
child process started successfully, parent exiting
                                                           [确定]
[root@mongodb init.d]# netstat -tnlp|grep mongod

tcp        0      0 127.0.0.1:27017             0.0.0.0:*                   LISTEN      2035/mongod         

添加开机自启动

[root@mongodb init.d]# chkconfig --add mongod

[root@mongodb init.d]# chkconfig mongod on

[root@mongodb init.d]# chkconfig |grep mongod
mongod          0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭


三、安全设置

1.限制登陆

查看帮助可以看到 登陆得方式

[root@mongodb bin]# ./mongo --help
MongoDB shell version v3.6.5
usage: ./mongo [options] [db address] [file names (ending in .js)]
db address can be:
  foo                   foo database on local machine
  192.168.0.5/foo       foo database on 192.168.0.5 machine

  192.168.0.5:9999/foo  foo database on 192.168.0.5 machine on port 9999

[root@mongodb bin]# ./mongo 192.168.16.144
MongoDB shell version v3.6.5
connecting to: mongodb://192.168.16.144:27017/test
2018-06-05T20:01:42.623+0800 W NETWORK  [thread1] Failed to connect to 192.168.16.144:27017, in(checking socket for error after poll), reason: Connection refused
2018-06-05T20:01:42.624+0800 E QUERY    [thread1] Error: couldn't connect to server 192.168.16.144:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:251:13
@(connect):1:6
exception: connect failed

错误信息:远程不允许登陆

先关闭 mongodb服务

[root@mongodb bin]# service mongod stop

Stopping mongod:                                           [确定]

[root@mongodb bin]# vim /etc/init.d/mongod                //编辑启动脚本加入 在启动选项加入以下内容

 OPTIONS=" --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log.txt --fork --bind_ip=127.0.0.1,    192.168.16.144"

启动mongodb

[root@mongodb bin]# service mongod start

Starting mongod: about to fork child process, waiting until server is ready for connections.
forked process: 2219
child process started successfully, parent exiting
                                                           [确定]

[root@mongodb bin]# ./mongo 192.168.16.144
MongoDB shell version v3.6.5
connecting to: mongodb://192.168.16.144:27017/test
MongoDB server version: 3.6.5

Server has startup warnings: 

只有这个ip可以远程登陆,但是还不安全 需要添加一个管理用户

2.用户权限限制

设置一个超级管理员账户,对于所有库具有读写权限

语法:

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

实现步骤:

切换到 admin 库 

> use admin

switched to db admin

创建 管理员用户

> db.createUser({user:'admin',pwd:'admin',roles:['root']})
Successfully added user: { "user" : "admin", "roles" : [ "root" ] }

关闭mongodb 服务

在启动脚本中得启动选项中再添加一条

OPTIONS=" --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log.txt --fork --bind_ip=127.0.0.1,    192.168.16.144 --auth"   

--auth 启动权限校验

启动服务测试

[root@mongodb bin]# ./mongo
MongoDB shell version v3.6.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.5
> use admin
switched to db admin
> db.goods.find()
Error: error: {
"ok" : 0,
"errmsg" : "
not authorized on admin to execute command { find: \"goods\", filter: {}, $db: \"admin\" }",
"code" : 13,
"codeName" : "Unauthorized"

}

可以看到 不是 admin 没有权限 

查看帮助 找到登陆 方式

> db.help --help

 db.auth(username, password)

> db.auth('admin','admin')

1                                //看到1 登陆成功

> db.goods.insert({user:'root'})   插入一条字段 测试

WriteResult({ "nInserted" : 1 })

>  

创建成功 这样 不是 这个ip 和这个 管理账号 登陆得话就不能做任何操作 服务就会安全很多

猜你喜欢

转载自blog.csdn.net/weixin_42123737/article/details/80585533