.rpm包安装mongodb3.4.6
下载地址:https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.4/x86_64/RPMS/
rpm -ivh mongodb-org-shell-3.4.-.el7.x86_64.rpm
rpm -ivh mongodb-org-tools-3.4.-.el7.x86_64.rpm
rpm -ivh mongodb-org-server-3.4.-.el7.x86_64.rpm
rpm -ivh mongodb-org-3.4.-.el7.x86_64.rpm .启动mongodb,设置开机自启动
[root@node1 mongodb]# systemctl start mongod
[root@node1 mongodb]# systemctl enable mongod
通过启动MongoDB的服务mongod运行起来之后可以通过netstat查看服务端口(mongodb运行在TCP的27017端口上) [root@node1 mongodb]# netstat -tanlp |grep mongod
tcp 127.0.0.1: 0.0.0.0:* LISTEN /mongod .MongoDB的文件和目录说明
# 配置文件;
/etc/mongod.conf
# 日志文件;
/var/log/mongodb/mongod.log
# PID文件;
/var/run/mongodb/mongod.pid
# 数据目录;
/var/lib/mongo
# 配置文件;
/etc/mongod.conf MongoDB工具集 MongoDB在bin目录下提供了一系列有用的工具,这些工具提供了MongoDB在运维管理上的方便,mongodb .0官方使用GO语言全部重写了这些工具。
Bsondump – 将bson格式的文件转储为json格式的数据。
Mongo – 客户端命令行工具,其实也是一个javascript解释器,支持js语法。
Mongod – 数据库服务器端,每个实例启动一个进程,可以fork为后台运行。
Mongodump/mongorestore – 数据库备份和恢复工具。
Mongoexport/mongoimport – 数据导出和导入工具。
Mongofiles – GridFS管理工具,可实现二进制文件的存储。
Mongos – 分片路由,如果是用来sharding功能,则应用程序连接的是mongos而不是mongod。
Mongostat – 实例统计信息。
Mongotop – 数据库磁盘I/O实时分析工具。
Mongooplog – 日志分析工具。
Mongoopperf – 性能测试工具。 MongoDB后台管理 Shell
当MongoDB安装好并启动之后,如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。
当你进入mongoDB后台后,它默认会链接到 test 文档(数据库): [root@node1 mongodb]# mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
--08T22::22.147+ I CONTROL [initandlisten]
--08T22::22.147+ I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
--08T22::22.147+ I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
--08T22::22.147+ I CONTROL [initandlisten]
--08T22::22.169+ I CONTROL [initandlisten]
--08T22::22.169+ I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
--08T22::22.169+ I CONTROL [initandlisten] ** We suggest setting it to 'never'
--08T22::22.169+ I CONTROL [initandlisten]
>
> 上面通过mongo客户端进入到了mongodb shell交互式接口,但是会有两个警告信息,警告信息是关于Linux中hugepage的。
MongoDB警告信息就是要求关闭hugepage,Oracle也要求关闭,HDFS会因为这个性能严重受影响。就是允许hugepage可以动态分配,而不是系统启动时预先分配,看上去对内存消耗很大的服务都不喜欢它 以下操作是临时关闭hugepage开机自动分配: [root@node1 mongodb]# echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
[root@node1 mongodb]# echo "never" > /sys/kernel/mm/transparent_hugepage/defrag .开始配置集群环境
master node1: 10.11.0.210
slave01 node2: 10.11.0.212
slave02 node5: 10.11.0.215 # 配置文件(三台主机保持一致)
[root@node1 data]# cat /etc/mongod.conf systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log storage:
dbPath: /var/lib/mongo
journal:
enabled: true processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile # 监听ip和端口
net:
port:
bindIp: 0.0.0.0
# http的访问接口,可以通过http://ip:28017访问
http:
RESTInterfaceEnabled: true replication:
oplogSizeMB:
# 集群名称
replSetName: wanxin 配置文件修改的时候一定要注意空格,两个空格,类似jinja的语法
一定要注意空格,NND害S人,wx是我随便取的名字。
然后关机克隆三份虚拟文件,也就是在做三台机器出来。 # 集群配置
[root@node1 mongodb]# mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.
> config = {_id:"wanxin", members:[{_id:, host:"10.11.0.210:27017"},{_id:, host:"10.11.0.212:27017"},{_id:, host:"10.11.0.215:27017"}]}
{
"_id" : "wanxin",
"members" : [
{
"_id" : ,
"host" : "10.11.0.210:27017"
},
{
"_id" : ,
"host" : "10.11.0.212:27017"
},
{
"_id" : ,
"host" : "10.11.0.215:27017"
}
]
}
# 初始化集群配置
> rs.initiate(config)
{ "ok" : }
wanxin:SECONDARY>
wanxin:PRIMARY>
wanxin:PRIMARY> # 查看集群状态
wanxin:PRIMARY> rs.status()
{
"set" : "wanxin",
"date" : ISODate("2018-06-11T07:34:53.872Z"),
"myState" : ,
"term" : NumberLong(),
"heartbeatIntervalMillis" : NumberLong(),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
},
"appliedOpTime" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
},
"durableOpTime" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
}
},
"members" : [
{
"_id" : ,
"name" : "10.11.0.210:27017",
"health" : ,
"state" : ,
"stateStr" : "PRIMARY",
"uptime" : ,
"optime" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
},
"optimeDate" : ISODate("2018-06-11T07:34:45Z"),
"electionTime" : Timestamp(, ),
"electionDate" : ISODate("2018-06-11T07:32:33Z"),
"configVersion" : ,
"self" : true
},
{
"_id" : ,
"name" : "10.11.0.212:27017",
"health" : ,
"state" : ,
"stateStr" : "SECONDARY",
"uptime" : ,
"optime" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
},
"optimeDurable" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
},
"optimeDate" : ISODate("2018-06-11T07:34:45Z"),
"optimeDurableDate" : ISODate("2018-06-11T07:34:45Z"),
"lastHeartbeat" : ISODate("2018-06-11T07:34:52.013Z"),
"lastHeartbeatRecv" : ISODate("2018-06-11T07:34:52.376Z"),
"pingMs" : NumberLong(),
"syncingTo" : "10.11.0.215:27017",
"configVersion" :
},
{
"_id" : ,
"name" : "10.11.0.215:27017",
"health" : ,
"state" : ,
"stateStr" : "SECONDARY",
"uptime" : ,
"optime" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
},
"optimeDurable" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
},
"optimeDate" : ISODate("2018-06-11T07:34:45Z"),
"optimeDurableDate" : ISODate("2018-06-11T07:34:45Z"),
"lastHeartbeat" : ISODate("2018-06-11T07:34:52.013Z"),
"lastHeartbeatRecv" : ISODate("2018-06-11T07:34:52.356Z"),
"pingMs" : NumberLong(),
"syncingTo" : "10.11.0.210:27017",
"configVersion" :
}
],
"ok" :
} 主节点中有一些数据,不会自动同步到slave节点,在slave节点查询报错:
wanxin:SECONDARY> db.students.find()
Error: error: {
"ok" : ,
"errmsg" : "not master and slaveOk=false",
"code" : ,
"codeName" : "NotMasterNoSlaveOk"
}
wanxin:SECONDARY>
# 解决
wanxin:SECONDARY> rs.slaveOk();

mongodb的简单安装

需求:
给MongoDB添加两个用户分别用于开发环境和测试环境,用户访问指定的db并拥有db的最高权限。 解决步骤:
.关闭权限验证、启动MongoDB
.创建MongoDB超级管理员,给予最高权限
.分别创建两个用户,给予各自db的最高权限
.开启权限验证、启动MongoDB
.测试 一、安装并配置mongodb
.将mongodb二进制mongodb-linux-x86_64-3.4..tgz解压到/usr/local目录下 .创建软连接
cd /usr/local
ln -s mongodb-linux-x86_64-3.4. mongodb # 修改mongodb的配置 /usr/loca/mongodb/conf/mongodb.conf
dbpath=/data/mongodb
logpath=/data/mongodb/log/mongodb.log
logappend=true
port=
fork=true
auth=true #开启认证
verbose=true
vvvv=true #启动verbose冗长信息,它的级别有 vv~vvvvv,v越多级别越高,在日志文件中记录的信息越详细.
maxConns= #默认值:取决于系统(即的ulimit和文件描述符)限制。MongoDB中不会限制其自身的连接。
#logappend=true #写日志的模式:设置为true为追加。
pidfilepath=/var/run/mongo.pid
#cpu=true #设置为true会强制mongodb每4s报告cpu利用率和io等待,把日志信息写到标准输出或日志文件。
#directoryperdb=ture #数据目录存储模式,如果直接修改原来的数据会不见了
#nohttpinterface=false # 端口开启的服务。默认false,支持
#notablescan=false#不禁止表扫描操作
profile= #数据库分析等级设置, 关 开。包括所有操作。 开。仅包括慢操作.
slowms= #记录profile分析的慢查询的时间,默认是100毫秒.
quiet=true
syncdelay= #刷写数据到日志的频率,通过fsync操作数据。默认60秒 .执行启动
# 创建mongodb数据目录
mkdir -p /data/mongodb/log
# 启动mongodb
./mongodb.sh start # 启动脚本
[root@eus_pe_web02:/usr/local/mongodb]# cat mongodb.sh
#!/bin/sh
# chkconfig:
# author:QingFeng
# description:MongoDB(MongoDB-2.4.) #默认参数设置
#mongodb 家目录
MONGODB_HOME=/usr/local/mongodb #mongodb 启动命令
MONGODB_BIN=$MONGODB_HOME/bin/mongod #mongodb 配置文件
MONGODB_CONF=$MONGODB_HOME/conf/mongodb.conf #mongodb PID
MONGODB_PID=/var/run/mongo.pid #最大文件打开数量限制
SYSTEM_MAXFD= #mongodb 名字
MONGODB_NAME="mongodb"
. /etc/rc.d/init.d/functions if [ ! -f $MONGODB_BIN ]
then
echo "$MONGODB_NAME startup: $MONGODB_BIN not exists! "
exit
fi start(){
ulimit -HSn $SYSTEM_MAXFD
$MONGODB_BIN --config="$MONGODB_CONF"
ret=$?
if [ $ret -eq ]; then
action $"Starting $MONGODB_NAME: " /bin/true
else
action $"Starting $MONGODB_NAME: " /bin/false
fi } stop(){
PID=$(ps aux |grep "$MONGODB_NAME" |grep "$MONGODB_CONF" |grep -v grep |wc -l)
if [[ $PID -eq ]];then
action $"Stopping $MONGODB_NAME: " /bin/false
exit
fi
kill -HUP `cat $MONGODB_PID`
ret=$?
if [ $ret -eq ]; then
action $"Stopping $MONGODB_NAME: " /bin/true
rm -f $MONGODB_PID
else
action $"Stopping $MONGODB_NAME: " /bin/false
fi } restart() { stop
sleep
start
} case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
esac 二、登录mongodb进行授权 # 添加环境变量
export MONGODB_HOME=/usr/local/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
PATH=/usr/local/mongodb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/ruby/bin;export PATH 具体步骤:
.关闭权限验证、重新启动MongoDB
MongoDB默认是不开启权限验证的,所以直接使用命令启动(需要在bin目录下): # 修改mongodb的配置注释掉下面的认证
/usr/loca/mongodb/conf/mongodb.conf # auth=true #开启认证 .添加并认证管理员
先在另一个命令窗口进入客户端(Linux可以让服务端在后台运行):mongo
然后在admin添加管理员(role:root表示最高权限): use admin db.createUser({
user:"admin",
pwd:"admin",
roles:[{
role:"root",
db:"admin"
}]
}) db.auth("admin", "admin") .添加用户并认证用户(要注意的是“dbAdmin”其实是没有读写权限的) > use chinasoft
switched to db chinasoft
> db.createUser({
user:"china",
pwd:"china2018",
roles:[{
role:"dbAdmin",
db:"chinasoft"
},{
role:"readWrite",
db:"chinasoft"
}]
}) > db.auth("china", "china2018") > quit() .开启权限验证、重新启动MongoDB(先关闭第1步启动的服务端) # 通过文件导入collections操作
[root@eus_pe_web02:/data]# mongoimport -h 172.17.0.37: --db chinasoft -u china -p china2018 --collection attach --file /data/attach.json
--24T02::39.940- connected to: 172.17.0.37:
--24T02::39.957- imported documents # 验证登录
mongo -h 172.17.0.37:/chinasoft_prod -u china -p china2018 [root@eus_pe_web02:/data]# mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.
> use chinasoft
switched to db chinasoft_prod
> db.auth("hipdfUser", "hipdf2018") > show collections
attach
> db.attach.find()
{ "_id" : ObjectId("5bab1fc5b83567b81e4d4c72"), "attach_id" : "0000-4794-1661-b22c-eb7", "remote_path" : "chinasoft/files/0000-4794-1661-b22c-eb7.zip", "rmfile" : false, "code" : "", "name" : "Resume - Timeless Dark", "file_name" : "timeless_dark.zip", "status" : , "create_at" : , "permission" : , "download_inc" : }
{ "_id" : ObjectId("5bab1fc5b83567b81e4d4c6e"), "attach_id" : "0000-4794-1661-11ae-eb7", "remote_path" : "files/0000-3083-1665-be96-249.jpg", "rmfile" : false, "code" : "sdasd", "name" : "asdasdas", "file_name" : "h10 (1).jpg", "create_at" : , "permission" : , "status" : }
{ "_id" : ObjectId("5bab1fc5b83567b81e4d4c74"), "attach_id" : "0000-4794-1661-aa53-eb7", "remote_path" : "chinasoft/files/0000-4794-1661-aa53-eb7.zip", "rmfile" : false, "code" : "", "name" : "Resume - Elegant Green", "file_name" : "elegant_green.zip", "status" : , "create_at" : , "permission" : } # 导入文件
# cat attach.json
{"_id":{"$oid":"5bab1fc5b83567b81e4d4c6c"},"attach_id":"0000-4794-1661-4b23-eb7","remote_path":"files/0000-15b7-1668-d074-605.pdf","rmfile":false,"code":"sdsds","name":"","file_name":"1 (11) - 副本.pdf","download_inc":,"create_at":,"permission":,"status":}
{"_id":{"$oid":"5bab1fc5b83567b81e4d4c6e"},"attach_id":"0000-4794-1661-11ae-eb7","remote_path":"files/0000-3083-1665-be96-249.jpg","rmfile":false,"code":"sdasd","name":"asdasdas","file_name":"h10 (1).jpg","create_at":,"permission":,"status":}
{"_id":{"$oid":"5bab1fc5b83567b81e4d4c70"},"attach_id":"0000-4794-1661-173b-eb7","remote_path":"chinasoft/files/0000-4794-1661-173b-eb7.zip","rmfile":false,"code":"","name":"Resume - Timeless Lite","file_name":"timeless_lite.zip","status":,"download_inc":,"create_at":,"permission":}
{"_id":{"$oid":"5bab1fc5b83567b81e4d4c72"},"attach_id":"0000-4794-1661-b22c-eb7","remote_path":"chinasoft/files/0000-4794-1661-b22c-eb7.zip","rmfile":false,"code":"","name":"Resume - Timeless Dark","file_name":"timeless_dark.zip","status":,"create_at":,"permission":,"download_inc":}
{"_id":{"$oid":"5bab1fc5b83567b81e4d4c74"},"attach_id":"0000-4794-1661-aa53-eb7","remote_path":"chinasoft/files/0000-4794-1661-aa53-eb7.zip","rmfile":false,"code":"","name":"Resume - Elegant Green","file_name":"elegant_green.zip","status":,"create_at":,"permission":}
{"_id":{"$oid":"5bab1fc5b83567b81e4d4c76"},"attach_id":"0000-4794-1661-f3c5-eb8","remote_path":"chinasoft/files/0000-4794-1661-f3c5-eb8.zip","rmfile":false,"code":"","name":"Resume - Elegant Gold","file_name":"elegant_gold.zip","status":,"create_at":,"permission":,"download_inc":} ...... # 忘记mongodb数据库管理员密码的处理方法
vim /etc/mongodb.conf # 修改 mongodb 配置,将 auth = true 注释掉,或者改成 false
service mongodb restart # 重启 mongodb 服务 mongo # 运行客户端(也可以去mongodb安装目录下运行这个)
use admin # 切换到系统帐户表
db.system.users.find() # 查看当前帐户(密码有加密过)
db.system.users.remove({}) # 删除所有帐户
db.addUser('admin','password') # 添加新帐户 vim /etc/mongodb.conf # 恢复 auth = true
service mongodb restart # 重启 mongodb 服务

mongodb3.4.6配置主从的更多相关文章

  1. postgresql+slony-i安装配置主从

    slon软件下载地址:slony1-1.2.6 http://slony.info/downloads/1.2/source/ postgresql下载地址: http://www.postgresq ...

  2. MySQL数据库配置主从服务器实现双机热备

    转自:http://www.cnblogs.com/cchun/p/3712637.html 一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168 ...

  3. mysql配置主从数据库

    1.目的 1.1 实现数据备份 1.2 项目访问时可以实现读写分离,提高访问和操作数据的速度<读写分离好处> 2.背景 这次的主从配置主要实现主库数据的改变可以实现同步到从库中: 此次试验 ...

  4. C# Redis学习系列三:Redis配置主从

    Redis配置主从 主IP :端口      192.168.0.103 6666 从IP:端口       192.168.0.108 3333 配置从库 (1)安装服务: redis-server ...

  5. MYSQL配置主从同步

    MYSQL配置主从同步 mysql主服务器配置 vim /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql. ...

  6. Windows下多个Mysql实例配置主从(转)

    https://www.cnblogs.com/jpfss/p/8143720.html 序:     网上有很多类似的文章,也是各种百度出来的,但是对于多数刚开始接触MYSQL主从的小白来说,网上文 ...

  7. Mysql配置主从同步的基本步骤

    # 配置主从同步的基本步骤 #总结为如下的步骤: # .在主服务器上,必须开启二进制日志机制和配置一个独立的ID # .在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号 ...

  8. springboot中配置主从redis

    测试redis的主从配置 redis实例 文件夹名称如下 redis_master_s redis_slaver1_s redis_slaver2_s redis.conf文件 master的redi ...

  9. keepalived配置主从备份

    keepalived配置主从备份   keepalived是一个用于做双机热备(HA)的软件,常和haproxy联合起来做热备+负载均衡,达到高可用. 运行原理 keepalived通过选举(看服务器 ...

随机推荐

  1. 剑指offer面试题4: 二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  2. vue 组件数据传递

    vue组件化开发 主要为了把一个大功能拆分成若干个小的功能,解决高耦合问题,同时也方便开发人员维护.   从功能上组件可以分为木偶组件和功能组件. 木偶组件(为了接收数据,渲染数据,基本上是没有逻辑的 ...

  3. idea中配置Springboot热部署

    1 pom.xml文件 注:热部署功能spring-boot-1.3开始有的 <!--添加依赖--> <dependency> <groupId>org.sprin ...

  4. 在SQL注入中利用MySQL隐形的类型转换绕过WAF检测

    web应用一般采用基于表单的身份验证方式(页面雏形如下图所示),处理逻辑就是将表单中提交的用户名和密码传递到后台数据库去查询,并根据查询结果判断是否通过身份验证.对于LAMP架构的web应用而言,处理 ...

  5. 【D3D】Directx12运行报错&win10无法添加【图形工具】

    “我欢欣雀跃地打开<3D programming with Directx12>,准备接受D3D的洗礼,然后就卡在了 chapter 0 .”——Liez 100%纯小白的chapter ...

  6. 进程池爬取并存入mongodb

    设置进程池爬取拉钩网: # coding = utf- import json import pymongo import pandas as pd import requests from lxml ...

  7. 最全的jquery datatables api 使用详解

    学习可参考:http://www.guoxk.com/node/jquery-datatables http://yuemeiqing2008-163-com.iteye.com/blog/20069 ...

  8. Struts2 REST 插件 XStream 远程代码执行漏洞 S2-052 复现过程

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  9. Redis随笔

    dump.rdb:快照文件 删除这个文件 rm -f dump.rdb 第一步:创建6个redis实例,端口号从7001~7006 第二步:修改redis的配置文件 1.修改端口号 修改redis.c ...

  10. C&C++动态分配内存(手动分配内存)三种方式

    1. malloc函数 函数原型:void *malloc(unsigned int size)函数的作用是:在内训的动态存储区开辟一个size个字节的连续空间,返回所分配区域的首字节地址. 可以看到 ...