关于MongoDB的windows的 安装,可以参考:

http://www.runoob.com/mongodb/mongodb-window-install.html

关于Linux的安装可以参考:

http://www.runoob.com/mongodb/mongodb-linux-install.html

使用MongoDB的场景:

A:需要写入大量的数据,但是这些数据的价值并不是太高,比如:日志

B:数据增长量较大,而且数据结构有时候还不一致

C:未来数据会很大。

注意:Mongodb有32位和64位之分,32位为数据库最大容量不能超过2GB

1、下载Linux下MongoDB的安装文件

下载地址:https://www.mongodb.com/download-center#community

选择Linux ,previous Release,然后选择指定版本进行安装,截图如下:

2、将下载好的mongodb-linux-x86_64-ubuntu1404-3.2.11.tgz  解压

3、将mongodb-linux-x86_64-ubuntu1404-3.2.11 中的内容移动到/usr/local/mongodb

mkdir -p /usr/local/mongodb

mv mongodb-linux-x86_64-ubuntu1404-3.2.11/* /usr/local/mongodb

创建数据库目录

cd /usr/local/mongodb

mkdir -p data/db

创建日志文件的目录

mkdir log

4、配置环境变量/etc/profile

vim /etc/profile

保存文件,让配置文件立即生效

source /etc/profile

5、通过命令的方式启动mongodb的方式如下:

cd /usr/local/mongodb
./bin/mongod -port 27017 -dbpath data/db --logpath log/mongodb.log --rest

注意上面启动的是mongodb的服务端

启动客户端的方式是:

cd /usr/local/mongodb

./bin/mongo mongodb机器ip:27017

查看mongodb的进程的方式:

ps -ef | grep mongodb

杀死mongodb进程的方式:pkill mongod

通过浏览器访问mongodb的控制台,之所以可以访问时因为在启动mongodb的时候后面加了一个 --rest

同理:window上的启动服务器端的示例:

mongod.exe --auth -port 27017 --dbpath "D:\installed\mongoDB\data\db" --logpath "D:\installed\mongoDB\docCheck\logs\MongoDB.log"

启动客户端的方式:

mongo.exe 127.0.0.1:27017

6、关于启动参数的说明(下面以window下的配置说明为示例):

--auth    //安全验证方式启动(即需要用户名和密码)

--dbpath "D:\installed\mongoDB\data\db"           //设定数据文件存放地址

--logpath "D:\installed\mongoDB\docCheck\logs\MongoDB.log"    //设定日志文件存放地址

7、通过配置文件来配置Mongodb

首先在/usr/local/mongodb目录下 新建一个文件,文件名任意,在这里取名为:mongodb.conf

# vim mongodb.conf

内容如下:

port=27017

replSet=docdetection                              #这个是创建副本集的方式
dbpath=/usr/local/mongodb/data/db
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true
fork=true
noauth=true
smallfiles=true
noprealloc=true

rest=true

启动它:

root@localhost:/usr/local/mongodb# ./bin/mongod -f mongodb.conf

启动客户端测试:

root@localhost:/usr/local/mongodb# ./bin/mongo localhost:27017
MongoDB shell version: 3.2.11
connecting to: localhost:27017/test
Server has startup warnings: 
2017-02-19T18:39:14.605+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-02-19T18:39:14.605+0800 I CONTROL  [initandlisten] 
2017-02-19T18:39:14.605+0800 I CONTROL  [initandlisten] 
2017-02-19T18:39:14.605+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-02-19T18:39:14.605+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-02-19T18:39:14.605+0800 I CONTROL  [initandlisten] 
2017-02-19T18:39:14.605+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.

2017-02-19T18:39:14.606+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-02-19T18:39:14.606+0800 I CONTROL  [initandlisten]

8、自启动脚本:

vi /etc/mongodb.conf

输入以下内容:

port=27017

replSet=docdetection                              #这个是创建副本集的方式
dbpath=/usr/local/mongodb/data/db
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true
fork=true
noauth=true
smallfiles=true
noprealloc=true

rest=true

下面加入自启动

cd /etc/init.d/

vi mongodb

添加一下内容:

#!/bin/bash

start() {
    /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf
}

stop() {
    /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf --shutdown
}

case "$1" in
    start)
    start
;;
    stop)
    stop
;;
    restart)
    stop
    start
;;
    *)
    echo $"Usage:$0 {start|stop|restart}"
    exit 1
esac

加入自启动:

chkconfig --add mongodb

chmod +x  mongodb

chkconfig mongodb on

如果是ubuntu

update-rc.d mongodb defaults

============================start==================================

上面是配置一个集群的情况,下面是配置多个集群的情况:

运行1个主节点,2个从节点中其中是一个仲裁节点(Arb)
/usr/local/mongodb/bin/mongod --replSet docdetection -port 27017 --dbpath /usr/local/mongodb/data/db1 --logpath /usr/local/mongodb/log/mongodb.log --oplogSize 1024 1>/dev/null 2>&1 &
/usr/local/mongodb/bin/mongod --replSet docdetection -port 27018 --dbpath /usr/local/mongodb/data/db2 --logpath /usr/local/mongodb/log/mongodb2.log --oplogSize 1024 1>/dev/null 2>&1 &
/usr/local/mongodb/bin/mongod --replSet docdetection -port 27019 --dbpath /usr/local/mongodb/data/db3 --logpath /usr/local/mongodb/log/mongodb3.log --oplogSize 1024 1>/dev/null 2>&1 &
其中:docdetection是副本集的名字,节点必须相同,--dbpath指定数据库存储路径,-port指定侦听端口,--oplogSize指定数据同步之间的缓存的空间大小,暂时指定1G。选择27107为主节点,进入27017

初始化副本集需要配置表,申明配置表如下:
mongo localhost:27017

注意_id和副本集启动的共享名称一致。下面来逐步添加节点的数据信息:
config = {_id: "docdetection", members: []}
config.members.push({_id: 0, host: "localhost:27017"})
config.members.push({_id: 1, host: "localhost:27018"})
config.members.push({_id: 2, host: "localhost:27019", arbiterOnly: true})

也可以使用rs.add和rs.addArb函数来实现同样的操作。然后需要用这个表作为参数初始化副本集,在27017端口的shell执行下面的内容:
rs.initiate(config)

返回ok为1表示初始化成功,三个节点互相检测通信,可以查看三个终端窗口的信息确认,完成通信后,在27017端口的shell回车执行命令确认配置。
rs.isMaster()

注意到27017端口的实例ismaster为ture,secondary为false,hosts有2个实例,arbiter有1个元素,primary关键key表示了主节点,通信完成几次回车后可以看到27017的端口shell的提示符已经改变,更改为application:PRIMARY,查看更详细的信息:
rs.status()

显示了每个节点的健康状况,名称,启动的时间,节点的类型等。
rs.conf()

插入测试数据:
db.users.insert({username: "visionwang", age: 26})

下面是替代上面启动mongod的方式。(因为使用上面的mongod的方式启动时不时自动停掉mongodb的服务器,所以下面需要让服务不停掉,需要按照下面的方式进行配置)

vim /etc/mongodb1.conf
内容是:
port=27017
replSet=docdetection                              #这个是创建副本集的方式
dbpath=/usr/local/mongodb/data/db1
logpath=/usr/local/mongodb/log/mongodb1.log
logappend=true
fork=true
noauth=true
smallfiles=true
noprealloc=true
rest=true

vim /etc/mongodb2.conf
port=27018
replSet=docdetection                              #这个是创建副本集的方式
dbpath=/usr/local/mongodb/data/db2
logpath=/usr/local/mongodb/log/mongodb2.log
logappend=true
fork=true
noauth=true
smallfiles=true
noprealloc=true
rest=true

port=27019
replSet=docdetection                              #这个是创建副本集的方式
dbpath=/usr/local/mongodb/data/db3
logpath=/usr/local/mongodb/log/mongodb3.log
logappend=true
fork=true
noauth=true
smallfiles=true
noprealloc=true
rest=true

cd /etc/init.d/

vi mongodb
添加一下内容:
#!/bin/bash

start() {
    /usr/local/mongodb/bin/mongod -f /etc/mongodb1.conf
/usr/local/mongodb/bin/mongod -f /etc/mongodb2.conf
/usr/local/mongodb/bin/mongod -f /etc/mongodb3.conf
}

stop() {
    /usr/local/mongodb/bin/mongod -f /etc/mongodb1.conf --shutdown
/usr/local/mongodb/bin/mongod -f /etc/mongodb2.conf --shutdown
/usr/local/mongodb/bin/mongod -f /etc/mongodb3.conf --shutdown
}

case "$1" in
    start)
    start
;;
    stop)
    stop
;;
    restart)
    stop
    start
;;
    *)
    echo $"Usage:$0 {start|stop|restart}"
    exit 1
esac

如果是ubuntu
update-rc.d mongodb defaults

============================end==================================

若方便重启,可以使用reboot重启测试(也可以不重启进行测试)

测试如下:

root@localhost:/etc/init.d# ./mongodb start
note: noprealloc may hurt performance in many applications
about to fork child process, waiting until server is ready for connections.
forked process: 13622
child process started successfully, parent exiting

root@localhost:/etc/init.d# ./mongodb stop
note: noprealloc may hurt performance in many applications
killing process with pid: 13738
root@localhost:/etc/init.d# ./mongodb restart
note: noprealloc may hurt performance in many applications
There doesn't seem to be a server running with dbpath: /usr/local/mongodb/data/db
note: noprealloc may hurt performance in many applications
about to fork child process, waiting until server is ready for connections.
forked process: 13764
child process started successfully, parent exiting
root@localhost:/etc/init.d# /usr/local/mongodb/bin/mongo
mongo         mongodump     mongofiles    mongooplog    mongorestore  mongosniff    mongotop      
mongod        mongoexport   mongoimport   mongoperf     mongos        mongostat     
root@localhost:/etc/init.d# /usr/local/mongodb/bin/mongo admin
MongoDB shell version: 3.2.11
connecting to: admin
Server has startup warnings: 
2017-02-19T20:48:05.038+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-02-19T20:48:05.038+0800 I CONTROL  [initandlisten] 
2017-02-19T20:48:05.038+0800 I CONTROL  [initandlisten] 
2017-02-19T20:48:05.038+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-02-19T20:48:05.038+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-02-19T20:48:05.038+0800 I CONTROL  [initandlisten] 
2017-02-19T20:48:05.038+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-02-19T20:48:05.038+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-02-19T20:48:05.038+0800 I CONTROL  [initandlisten] 
> show dbs
local  0.000GB
>

以管理员身份进入管理后台

/usr/local/mongodb/bin/mongo admin

发现结果是:

root@localhost:/usr/local/mongodb# ./bin/mongo admin
MongoDB shell version: 3.2.11
connecting to: admin
Server has startup warnings: 
2017-02-19T20:33:58.602+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-02-19T20:33:58.602+0800 I CONTROL  [initandlisten] 
2017-02-19T20:33:58.603+0800 I CONTROL  [initandlisten] 
2017-02-19T20:33:58.603+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-02-19T20:33:58.603+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-02-19T20:33:58.603+0800 I CONTROL  [initandlisten] 
2017-02-19T20:33:58.603+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-02-19T20:33:58.603+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-02-19T20:33:58.603+0800 I CONTROL  [initandlisten] 
> show dbs;
local  0.000GB

经过以上步步骤使得mongodb通过脚本自动启动

9、Windows下创建MongoDB的启动服务

A:在MongoDB目录下新建一个logs文件夹用于存放日志文件,然后组合键win + x + a,打开管理员命令提示符。  在左侧选择管理员:命令提示符

C:\WINDOWS\system32>echo logpath=D:\installed\mongoDB\docCheck\logs\MongoDB.log > "D:\installed\mongoDB\docCheck\mongod.cfg"
C:\WINDOWS\system32>echo dbpath=D:\installed\mongoDB\data\db >> "D:\installed\mongoDB\docCheck\mongod.cfg"

B:准备工作已经做完,下面开始最重要的一步,使用SC命令创建MongoDB服务:

C:\WINDOWS\system32>sc.exe create MongoDB binpath="D:\installed\mongoDB\docCheck\bin\mongod.exe --service --config=D:\installed\mongoDB\docCheck\mongod.cfg"
[SC] CreateService 成功
C:\WINDOWS\system32>

C:开启服务,使用如下命令:

C:\WINDOWS\system32>net start MongoDB

MongoDB 服务已经启动成功。

截图如下:

然后win + r,输入services.msc打开windows服务列表,你会看到一个名称为MongoDB,状态为"正在运行"的服务。

到此为止你就可以从服务中启动MongoDB,然后使用它的服务而不用一直保留着另一个服务端的DOS窗口了。

10、另外,还可以通过Robomongo验证mongodb是否可以远程连接

=======================================================================

对于mongodb的数据迁移,迁移的方式如下:

将docdetection数据库拷贝到/usr/local/mongodb
mongodump -h localhost -d docdetection -o /usr/local/mongodb

将/usr/local/mongodb/docdetection/下的数据库文件docdetection导入到mongodb中
mongorestore -h localhost -d docdetection --dir  /usr/local/mongodb/docdetection/

Linux下MongoDB的安装,通过配置文件启动Mongodb的方式研究,mongodb自启动脚本(Linux),Windows下安装MongoDB服务,集群部署,数据导出和恢复相关推荐

  1. Linux服务集群部署实战--MySQL、Redis、ES、RocketMQ、Zookeeper

    部署架构 部署计划 MySQL服务部署 架构 规划 部署pxc集群 部署MySQL主从架构 部署mycat集群 创建表以及测试 部署HAProxy redis集群部署 redis集群采用3主3从的架构 ...

  2. Linux下搭建 kafka集群 + zookeeper集群部署 安装、启动、停止

    文章目录 一.环境部署总览 1. 软件版本选型 2. 服务器软件部署总览 二.软件部署手册 2.1. JDK 2.2. kafka 2.3. Kafka Eagle 2.4. mysql 2.5. z ...

  3. Linux集群部署系列(六):Hadoop 在window系统下安装方法

    Hadoop-Windows安装 1.安装前的准备工作 1.下载JDK 网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8- ...

  4. 大数据生态(六)zookeeper集群部署(Linux和Windows[含一键启动脚本])

    目录 前言 1.解压安装Zookeeper到/e3base/zookeeper目录下 2 .创建$E3_INFO_HOME/zookeeper目录 3 .创建数据目录和日志目录 4.配置环境变量 4. ...

  5. Elasticsearch——Windows下ES集群部署 Linux下ES单节点、集群部署

    1.开篇 在之前的两篇文章中,说白了就是在windows下部署的ES单节点的环境. 这篇文章主要是说一下windows下部署ES集群.Linux下单节点部署. 单台 Elasticsearch 服务器 ...

  6. Linux中级实战专题篇:rabbitmq(消息中间件p2p模式和pub模式,消息队列rabbitmq详解,单机安装,集群部署以及配置实战)

    一.消息中间件相关概念 1.简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台相关 的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息 队列模型,可以在分布 ...

  7. Redis的安装配置及简单集群部署

    最近针对中铁一局项目,跟事业部讨论之后需要我们的KF平台能够接入一些开源的数据库,于是这两天研究了一下Redis的原理. 1. Redis的数据存储原理及简述 1.1Redis简述 Redis是一个基 ...

  8. Kafka集群部署详细步骤(包含zookeeper安装步骤)

    Kafka集群部署 注意:如果jdk1.8和zookeeper都安装设置过之后可以直接安装kafka跳过其它步骤 kafka基础简介及基本命令 1.环境准备 1.1集群规划 node01  node0 ...

  9. Greenplum学习实践-【安装部署】-2、 5.10集群部署

    Greenplum学习实践-[安装部署]-2. 5.10集群部署 第 1 章** 环境说明 1.1 官方文档 Greenplum官方安装说明: https://gpdb.docs.pivotal.io ...

  10. Elasticsearch在Linux中的单节点部署和集群部署

    目录 一.Elasticsearch简介 二.Linux单节点部署 1.软件下载解压 2.创建用户 3.修改配置文件 4.切换到刚刚创建的用户启动软件 5.测试 三.Linux集群配置 1.拷贝文件 ...

最新文章

  1. 无法使用xcode打出ipa包的解决方法
  2. virtualBox 创建新虚拟机
  3. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器启用https服务申请免费证书...
  4. 怎样用springboot开发cs_SpringBoot分布式任务中间件开发 附视频讲解 (手把手教你开发和使用中间件)...
  5. java基础----IO打印流PrintStream
  6. P2590-[ZJOI2008]树的统计【树链剖分,线段树】
  7. 三级嵌入式选择知识点整理
  8. cocos2d对动画的各种操作
  9. html的技术标准网站,HTML5标准最新技术预览
  10. 【window】git安装教程
  11. Spring Boot笔记-JPA中自定义@Query分页查询
  12. 【转】SqlLite .Net 4.0 System.IO.FileLoadException”类型的未经处理的异常出现在XXX
  13. 如何快速入手 Shell 脚本编程
  14. 批处理只执行第一句,其他的不被执行,怎么办?
  15. 信息收集工具之hping安装和使用
  16. 电脑网络连接怎么设置
  17. Win10怎么安装Apache服务
  18. JavaScript网页特效范例宝典pdf
  19. link与@import自己的一些愚见
  20. 【GitHub或GitLab rejected】error: failed to push some refs to,Updates were rejected...

热门文章

  1. Django框架(7.Django中视图,url的配置)
  2. 物流管理论文实现:基于遗传算法的带时间窗和载重约束的车辆路径优化
  3. 用100行python代码发现语音识别文本错误词,并将结果和正确词一一对应
  4. VTK:隐式数据集剪辑用法实战
  5. wxWidgets:wxTaskBarButton 示例
  6. wxWidgets:wxHTML 概述
  7. boost::stl_interfaces模块实现重复字符迭代器的测试程序
  8. boost::mp11::mp_unique_if相关用法的测试程序
  9. boost::mp11::mp_any_of_q相关用法的测试程序
  10. boost::hana::detail::any_of用法的测试程序