一、安装
1、Window环境下:
下载地址:http://www.mongodb.org/downloads 本人安装:2.4.6版本64位(mongodb-win32-x86_64-2.4.6.zip),将ZIP包解压后放到任意盘符下,本人解压到D:盘下一个新建的一个MongoDB的文件夹下(以下配置都以D盘目录来进行配置)。
1)准备工作:
在任意目录下新建一个文件夹用以存放MongoDB的数据库安装目录,本人安装在了D下新建的一个data的文件下(此data文件大概要3个G左右)。。
在任意目录下新建一个文件夹用以存放MongoDB的数据库服务器日志文件,并且要在文件夹下新建一个日志文件,本人在D:/MongoDB/目录下新建了log文件夹,并在此文件夹下新建了mongodb.log文件。
2) 安装
a)命令安装 (数据库服务会随着命令窗体的关闭而关闭):
在相应文件下新建一个任意名称的.bat文件,在.bat文件中写入下命令(当然此处不创建.bat在CMD中直接输入此命令也是即可的):
D:\MongoDB\bin\mongod.exe --dbpath=D:\data --logpath= D:\MongoDB/log/mongodb.log
运行此.bat文件就可以打开MongoDB数据库服务了。
常用指令说明:
--dbpath:用以指定数据库的安装目录,此目录随意设置
--port:可以在命令中加入--port=xxxxx指令用以指定mongoDB数据库服务所使用的端口,如果不指定默认为27017端口
--logpath:用以指定数据库的日志文件,此目录可随意设置,但前提mongodb.log日志文件要提前设置完成
--fork=true:可以在命令中加入此命令用以指定此数据库服务从后台执行(也就是说数据库服务不会随着.bat窗口的关闭而停止,需要自己手动杀进程来完成,一般本地自己Hellow world不推荐),如果指定了想关闭数据库只有自己找到相应的MongoDB进程杀掉即可。
b)配置文件安装(由于MongoDB启动命令过长,读写不方便可以使用命令指定配置文件形式安装)
准备工作:在任意目录下新建xxxx.config的配置文件,在配置文件中写上如下指示:
##安装目录
dbpath=D:\data
##日志目录
logpath=D:\MongoDB/log/mongodb.log
##是否后台运行 此时是注释掉的
##fork=true
##端口 不写默认为27017端口
port=27017
(本人将自己的配置文件新建在了D:/MongoDB/mongodb.config中)
在相应文件下新建一个任意名称的.bat文件,在.bat文件中写入下命令(当然此处不创建.bat在CMD中直接输入此命令也是即可的):
D:\MongoDB\bin\mongod.exe -f D:/MongoDB/mongodb.config
运行此.bat文件就可以打开MongoDB数据库服务了。
3)检测安装是否完成可以在IE地址中输入:http://localhost:27017/ 或者 http://127.0.0.1:27017/ 来检测是否安装成功,如果成功可以正确看到此信息:
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
也可以输入:http://localhost:28017/ 此地址进入到MongoDB数据库管理页面(此端口28017实际就是比您设置的端口+1000,比如您设置的是7777那此端口就为8777)
4)客户端使用(使用客户端连接MongoDB数据库服务器简单测试,但前提条件是数据库服务已经开启):
在相应文件下新建一个任意名称的.bat文件,在.bat文件中写入下命令(当然此处不创建.bat在CMD中直接输入此命令也是即可的):
D:\MongoDB\bin\mongod.exe localhost:27017
运行此.bat文件就可以打开MongoDB客户端服务了,看到以下信息表示连接完成,可以输入简单命令测试下了:
MongoDB shell version: 2.4.6
connecting to: localhost:27017/test
2、linux环境下安装
下载地址:http://www.mongodb.org/downloads 本人安装:2.4.7版本64位(mongodb-linux-x86_64-2.4.7.tar),将tar包解压后放到任意盘符下,本人解压到/opt/目录下一个新建的一个MongoDB的文件夹下(以下配置都以/opt/目录来进行配置),命令如下所示:
tar -xvf mongodb-linux-x86_64-2.4.7.tar 解压
mv mongodb-linux-x86_64-2.4.7 mongodb-2.4.7 重命名
1)准备工作:
在任意目录下新建一个文件夹用以存放MongoDB的数据库安装目录,本人安装在了/home/${userName}/目录下新建的一个data的文件下(此data文件大概要3个G左右),命令如下所示(${userName}表示你的用户名)。
mkdir data 新建data 文件件
在任意目录下新建一个文件夹用以存放MongoDB的数据库服务器日志文件,并且要在文件夹下新建一个日志文件,本人在/home/${userName}/MongoDB/目录下新建了log文件夹,并在此文件夹下新建了mongodb.log文件,命令如下所示(${userName}表示你的用户名。
mkdir MongoDB
touch mongodb.log
2) 安装
a)命令安装 (数据库服务会随着命令窗体的关闭而关闭):
在相应文件下新建一个任意名称的.sh文件,在.sh文件中写入下命令(${userName}表示你的用户名:
/opt/mongodb-2.4.7/bin/mongod --dbpath=/home/${userName}/data --logpath= /home/${userName}/log/mongodb.log
运行此.sh文件就可以打开MongoDB数据库服务了。
sh xxxx.sh
常用指令说明:
--dbpath:用以指定数据库的安装目录,此目录随意设置
--port:可以在命令中加入--port=xxxxx指令用以指定mongoDB数据库服务所使用的端口,如果不指定默认为27017端口
--logpath:用以指定数据库的日志文件,此目录可随意设置,但前提mongodb.log日志文件要提前设置完成
--fork=true:可以在命令中加入此命令用以指定此数据库服务从后台执行(也就是说数据库服务不会随着.bat窗口的关闭而停止,需要自己手动杀进程来完成,一般本地自己Hellow world不推荐),如果指定了想关闭数据库只有自己找到相应的MongoDB进程杀掉即可。
b)配置文件安装(由于MongoDB启动命令过长,读写不方便可以使用命令指定配置文件形式安装)
准备工作:在任意目录下新建xxxx.config的配置文件,在配置文件中写上如下指示:
touch xxxx.config
##安装目录
dbpath=/home/${userName}/data
##日志目录
logpath=/home/${userName}//log/mongodb.log
##是否后台运行 此时是注释掉的
##fork=true
##端口 不写默认为27017端口
port=27017
##用于指定访问的IP地址
bind_ip=192.168.0.183
(本人将自己的配置文件新建在了/opt/mongodb-2.4.7/mongodb.config中)
在相应文件下新建一个任意名称的.sh文件,在.sh文件中写入下命令:
/opt/mongodb-2.4.7/bin/mongod -f /opt/mongodb-2.4.7/mongodb.config
运行此.sh文件就可以打开MongoDB数据库服务了。
sh xxx.sh
3)检测安装是否完成可以在IE地址中输入:http://192.168.0.183:27017/ 来检测是否安装成功,如果成功可以正确看到此信息:
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
也可以输入:http://192.168.0.183:28017/ 此地址进入到MongoDB数据库管理页面(此端口28017实际就是比您设置的端口+1000,比如您设置的是7777那此端口就为8777)
4)linux 中mongoDB数据库服务在后台启动时该如何关闭呢?关闭命令如下所以:
ps aux | grep mongod 可以查到mongoDB 的进程信息
##查询结果例子:
${username} 7516 0.7 1.5 354372 32748 ? Sl 14:05 0:00 /opt/mongodb-2.4.7/bin/mongod -f /opt/mongodb-2.4.7/mongo.config
##停止mongoDB 命令kill -2 使用-2 不要使用-9
kill -2 7516
二、可视话的MongoDB客户端安装
Window系统下使用的话:推荐使用Robomongo工具
下载地址: http://www.robomongo.org
操作比较容易非常简单,不做多解释。
三、MongoDB配置复制集合
1、Master-slave(主从复制):从机会定时访问主机的oplog.js日志而实现与主机数据信息实时同步,用以主机损坏数据丢失。但主服务当机时,从机服务无法继续使用,系统会抛出错误信息
其中主机启动命令如下所示(window环境):
D:\mongoDB\bin\mongod.exe --dbpath=D:\mongoDB\data --logpath= D:\mongoDB\log\mongodb.log --port=7777 --master
--master 用以表明是主机
其中从机启动命令如下所示:
E:\mongoDB\bin\mongod.exe --dbpath=E:\mongoDB\data --port=8888 --slave --source=localhost:7777
--slave 用以表明是从机
--source=localhost:7777 用以表明是那台主机的从机,localhost可以指定为IP地址
此时请注意从机放在了E盘下(可包含多个从机配置信息)。
中从关系测试:可以使用以下向主机中插入数据,在从机中查看数据来进行对主从关系的测试。
D:\mongoDB\bin\mongod.exe localhost:7777
连接客户端连接到主机,在主机中对数据库执行插入数据操作
use test
db.user.insert({"name":"test1","age":17})
db.user.find()
此时可以查到刚插入的数据
然后继续使用
E:\mongoDB\bin\mongod.exe localhost:8888
连接从机
use test
db.user.find()
此时就可以看到您刚刚在主机中插入的数据 已经同步到了从机数据库中。
2、Replica Sets(复制集):数据库集群中并没有强制的主从关系,主服务器是从多个服务器中投票选举出来的,每个服务器都有可能担当主服务器,如果主服务器当机,会从其他服务器中重新投票选举出一台服务器来担当主服务器。
以下三台服务器的启动名领如下所示:
D:\mongoDB\bin\mongod.exe --dbpath D:\mongoDB\data --port 7777 --replSet rs1
E:\mongoDB\bin\mongod.exe --dbpath D:\mongoDB\data --port 8888 --replSet rs1
F:\mongoDB\bin\mongod.exe --dbpath D:\mongoDB\data --port 9999--replSet rs1
--replSet:用以指明复制集的名称
rs1:为此次复制集合的名称,此名称自己随意定义
*初始化复制集合环境信息
config_rs1={_id:'rs1',members:[{_id:1,host:'localhost:7777'},{_id:2,host:'localhost:8888'},{_id:3,host:'localhost:9999'}]}
rs.initiate(config_rs1)
或者
db.runCommand({"replSetInitiate":{"_id":"rs1","members":[{"_id":1,"host":"localhost:7777"},{"_id":2,"host":"localhost:8888"},{"_id":3,"host":"localhost:9999"}]}})
这两种方式用以初始化复制集合信息
在复制集合使用测试时我们打出如下命令:
E:\mongoDB\bin\mongod.exe localhost:7777
如果我们看到的是:
connecting to: localhost:7777/test
rs1:SECONDARY>
这种信息,这表示此事 localhost:7777数据库是从机服务,此时localhost:7777客户端对存储的数据进行任何操作,连简单的查询都会提示出"not master and slaveOk=false"错误,此错误表示该服务器不可以对存储的数据进行读操作。但它具有rs.status()指令执行权限,用以查询当前复制集的状态信息。如果你想在这个服务器中具有读操作时需要执行以下命令:
db.getMongo().setSlaveOk() 或者rs.slaveOK() 都可以从而让这台服务器对存储的数据具有了读的权限(只有读的权限)
如果我们看到的是:
connecting to: localhost:7777/test
rs1:PRIMARY>
此时表示当前7777这台服务器为主服务器,它具有可操作的任何权限
常见的命令有:
rs.status() 这个命令不管是服务是PRIMARY,还是SECONDARY都可以执行此命令来查询当前复制集状态
rs.add("localhost:9899") 此命令可以向复制集中新增端口为9899的从机
rs.remove("localhost:9899")此命令可以删除复制集中端口为9899的从机
rs.freeze(30) 此命令可以让一台从机停止30秒不参加选举,处于冰冻状态。需要在Secondary从机中执行,不可以在主机中PRIMARY中执行
rs.stepDown(30)此命令可以让主机在30秒后降级为从机,只能在主机中PRIMARY中执行
相关推荐
### MongoDB 主从复制,副本集分布式存储 #### 一、MongoDB 主从复制与副本集的概念 MongoDB 是一种非常流行的非关系型数据库系统,它采用面向文档的数据模型,能够高效地处理大量的非结构化数据。为了提高系统的...
实施MongoDB主从复制的过程如下: 1. **配置主节点**:首先,启动一个MongoDB实例作为主节点,例如在D盘,通过命令`mongod --dbpath='XXX' --master`启动,使用默认的27017端口。 2. **配置从节点**:然后启动另一...
MongoMultiMaster是一个基于Python编写的工具,专门用于简化MongoDB主从复制(也称为分片集群)的配置过程。在大型分布式系统中,数据的可靠性和可用性是至关重要的,而MongoDB的主从复制机制正好能提供这样的功能。...
然而,从版本3.2开始,MongoDB引入了复制集(Replica Sets),它比主从复制更强大,能提供自动故障切换、更多的副本以及更好的选举机制。尽管如此,对于小型部署或测试环境,主从复制仍是一种简单有效的解决方案。
总之,搭建MongoDB主从集群涉及多个步骤,包括安装、配置、初始化、加入节点和监控。在Windows环境中,这可以通过虚拟化技术实现,但生产环境中应考虑物理分离以提高稳定性。理解并掌握这些知识点,对于管理和维护高...
以下是对MongoDB主从环境搭建的详细步骤: 1. **安装MongoDB**: 首先,你需要在所有参与复制的服务器上安装MongoDB。根据你的操作系统(如Ubuntu、CentOS或Windows)下载并安装相应的MongoDB二进制包。 2. **...
- 查看复制集的状态: ```bash rs.status() ``` 通过以上步骤,您可以成功地在Linux环境下搭建MongoDB主从集群,并实现基本的数据管理和维护功能。这样的配置能够有效地提高数据处理能力和系统可用性,特别是在...
4. **动态添加从节点**:后期可以将新的MongoDB实例加入到复制集,通过修改`sources`集合,添加主机地址。 对于更高级的部署模式,MongoDB提供了副本集(Replica Set)。副本集是主从复制的增强版,它没有固定的主...
linux mongodb分布式负载... MongoDB集群主从复制部署帮助文档 MongoDB集群主从复制使用帮助文档 MongoDB集群主从复制遇到问题解决文档 mongodb网页资料 linux内网生产环境使用;文档比较清晰,按照步骤安装即可;
标题“mongodb主从结构的配置”指的是在MongoDB环境中设置主从复制的过程。这一过程包括以下几个关键步骤: 1. **环境准备**:首先,你需要在至少两台服务器上安装MongoDB。一台作为主节点,另一台或多台作为从节点...
虽然现在MongoDB推荐使用副本集(Replica Sets)代替主从复制,因为副本集提供了更高级别的自动化故障转移和更丰富的功能,但了解主从复制仍然是理解MongoDB基础架构的重要部分。 主从复制的基本原理是将一个...
与 Memcached 和 Redis 类似,MongoDB 也支持分布式部署,包括主从配置(也称为副本集),以实现数据冗余和高可用性。主从配置在 MongoDB 中是一个重要的概念,它允许一个主节点接收所有写操作,而从节点则复制主...
1. **主从复制集** MongoDB 还支持更为复杂的复制集架构,可以通过增加更多的从节点形成复制集,进一步提升系统的可靠性和性能。 2. **故障转移** 当主节点出现故障时,复制集中的从节点之一可以自动晋升为主...
k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set) k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set)是结合 Kubernetes(k8s)和 MongoDB 实现高可用性和高性能的解决方案。本解决方案通过使用 ...
由于 MongoDB 的主从复制功能不支持高可用,所以从 3.2 版本开始已经被废弃了,转而用副本集来代替实现数据复制的功能。一个副本集总会有一个活跃节点(Primary)和若干个备份节点(Secondary),还有一个可选的一个...
### MongoDB 安装与配置详解 #### 一、前言 ...此外,我们还简要介绍了 MongoDB 的主从复制集和分片机制,这对于构建高可用和高性能的 MongoDB 系统非常有用。希望本文能够帮助您更好地理解和使用 MongoDB。