MongoDB 3.2 在CentOS 上的安装和配置
MongoDB 3.2 在CentOS 上的安装和配置
您的评价: |
|
0.0 |
一、安装
编辑/etc/yum.repos.d/mongodb-org-3.2.repo
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1
yum install -y mongodb-org
二、配置
编辑/etc/mongod.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /data/mongo
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,<内网IP> # Listen to local interface only, comment to listen on all interfaces.注意不要逗号前后不要有空格
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options
#auditLog:
执行
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
编辑/etc/rc.local,添加
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
编辑vi /etc/security/limits.d/99-mongodb-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 35000
root soft nproc unlimited
三、防火墙
iptables -I INPUT 10 -s <允许ip> -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d <允许ip> -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
启动mongodb并进行简单的操作
2.service mongod start #启动mongodb 服务
3.进入mongodb
MongoDB数据表基本操作
查看全部数据表
> use ChatRoom
switched to db ChatRoom
> show collections
Account
Chat
system.indexes
system.users
创建数据表
> db.createCollection("Account")
{"ok":1}
> db.createCollection("Test",{capped:true, size:10000}) { "ok" : 1 }
{"ok":1}
-- 说明
capped:true,表示该集合的结构不能被修改;
size:在建表之初就指定一定的空间大小,接下来的插入操作会不断地按顺序APPEND数据在这个预分配好空间的文件中,如果已经超出空间大小,则回到文件头覆盖原来的数据继续插入。这种结构保证了插入和查询的高效性,它不允许删除单个记录,更新的也有限制:不能超过原有记录的大小。这种表效率很高,它适用于一些暂时保存数据的场合,比如网站中登录用户的session信息,又比如一些程序的监控日志,都是属于过了一定的时间就可以被覆盖的数据。
修改数据表名
> db.Account.renameCollection("Account1")
{ "ok" : 1 }
数据表帮助主题help
> db.Account.help()
DBCollection help
db.Account.find().help() - show DBCursor help
db.Account.count()
db.Account.dataSize()
db.Account.distinct( key ) - eg. db.Account.distinct( 'x' )
db.Account.drop() drop the collection
db.Account.dropIndex(name)
db.Account.dropIndexes()
db.Account.ensureIndex(keypattern[,options]) - options is an object with these possible fields: name, unique, dropDups
db.Account.reIndex()
db.Account.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.
e.g. db.Account.find( {x:77} , {name:1, x:1} )
db.Account.find(...).count()
db.Account.find(...).limit(n)
db.Account.find(...).skip(n)
db.Account.find(...).sort(...)
db.Account.findOne([query])
db.Account.findAndModify( { update : ... , remove : bool [, query: {}, sort: {}, 'new': false] } )
db.Account.getDB() get DB object associated with collection
db.Account.getIndexes()
db.Account.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } )
db.Account.mapReduce( mapFunction , reduceFunction , <optional params> )
db.Account.remove(query)
db.Account.renameCollection( newName , <dropTarget> ) renames the collection.
db.Account.runCommand( name , <options> ) runs a db command with the given name where the first param is the collection name
db.Account.save(obj)
db.Account.stats()
db.Account.storageSize() - includes free space allocated to this collection
db.Account.totalIndexSize() - size in bytes of all the indexes
db.Account.totalSize() - storage allocated for all data and indexes
db.Account.update(query, object[, upsert_bool, multi_bool])
db.Account.validate() - SLOW
db.Account.getShardVersion() - only for use with sharding
查看全部表记录
> db.Account.find()
{ "_id" : ObjectId("4df08553188e444d001a763a"), "AccountID" : 1, "UserName" : "libing", "Password" : "1", "Age" : 26, "Email" : "libing@126.com", "RegisterDate" : "2011-06-09 16:31:25" }
{ "_id" : ObjectId("4df08586188e444d001a763b"), "AccountID" : 2, "UserName" : "lb", "Password" : "1", "Age" : 25, "Email" : "libing@163.com", "RegisterDate" : "2011-06-09 16:36:95" }
说明:
可以通过DBQuery.shellBatchSize设置每页显示数据的大小。如:DBQuery.shellBatchSize = 5,这样每页就显示5条记录了。
> db.Test.find()
{ "_id" : ObjectId("4df6d55407444568af61cfea"), "TestID" : 1 }
{ "_id" : ObjectId("4df6d55907444568af61cfeb"), "TestID" : 2 }
{ "_id" : ObjectId("4df6d55b07444568af61cfec"), "TestID" : 3 }
{ "_id" : ObjectId("4df6d55e07444568af61cfed"), "TestID" : 4 }
{ "_id" : ObjectId("4df6d56207444568af61cfee"), "TestID" : 5 }
{ "_id" : ObjectId("4df6d56507444568af61cfef"), "TestID" : 6 }
{ "_id" : ObjectId("4df6d56807444568af61cff0"), "TestID" : 7 }
{ "_id" : ObjectId("4df6d56b07444568af61cff1"), "TestID" : 8 }
{ "_id" : ObjectId("4df6d56e07444568af61cff2"), "TestID" : 9 }
{ "_id" : ObjectId("4df6d57a07444568af61cff3"), "TestID" : 10 }
{ "_id" : ObjectId("4df6d57d07444568af61cff4"), "TestID" : 11 }
{ "_id" : ObjectId("4df6d58007444568af61cff5"), "TestID" : 12 }
{ "_id" : ObjectId("4df6d58307444568af61cff6"), "TestID" : 13 }
{ "_id" : ObjectId("4df6d58e07444568af61cff7"), "TestID" : 14 }
{ "_id" : ObjectId("4df6d59207444568af61cff8"), "TestID" : 15 }
{ "_id" : ObjectId("4df6d59607444568af61cff9"), "TestID" : 16 }
{ "_id" : ObjectId("4df6d59c07444568af61cffa"), "TestID" : 17 }
{ "_id" : ObjectId("4df6d5a307444568af61cffb"), "TestID" : 18 }
{ "_id" : ObjectId("4df6d5a607444568af61cffc"), "TestID" : 19 }
> DBQuery.shellBatchSize
20
> DBQuery.shellBatchSize = 5
5
> db.Test.find()
{ "_id" : ObjectId("4df6d55407444568af61cfea"), "TestID" : 1 }
{ "_id" : ObjectId("4df6d55907444568af61cfeb"), "TestID" : 2 }
{ "_id" : ObjectId("4df6d55b07444568af61cfec"), "TestID" : 3 }
{ "_id" : ObjectId("4df6d55e07444568af61cfed"), "TestID" : 4 }
{ "_id" : ObjectId("4df6d56207444568af61cfee"), "TestID" : 5 }
has more
> it
{ "_id" : ObjectId("4df6d56507444568af61cfef"), "TestID" : 6 }
{ "_id" : ObjectId("4df6d56807444568af61cff0"), "TestID" : 7 }
{ "_id" : ObjectId("4df6d56b07444568af61cff1"), "TestID" : 8 }
{ "_id" : ObjectId("4df6d56e07444568af61cff2"), "TestID" : 9 }
{ "_id" : ObjectId("4df6d57a07444568af61cff3"), "TestID" : 10 }
has more
> it
{ "_id" : ObjectId("4df6d57d07444568af61cff4"), "TestID" : 11 }
{ "_id" : ObjectId("4df6d58007444568af61cff5"), "TestID" : 12 }
{ "_id" : ObjectId("4df6d58307444568af61cff6"), "TestID" : 13 }
{ "_id" : ObjectId("4df6d58e07444568af61cff7"), "TestID" : 14 }
{ "_id" : ObjectId("4df6d59207444568af61cff8"), "TestID" : 15 }
has more
> it
{ "_id" : ObjectId("4df6d59607444568af61cff9"), "TestID" : 16 }
{ "_id" : ObjectId("4df6d59c07444568af61cffa"), "TestID" : 17 }
{ "_id" : ObjectId("4df6d5a307444568af61cffb"), "TestID" : 18 }
{ "_id" : ObjectId("4df6d5a607444568af61cffc"), "TestID" : 19 }
> it
no cursor
查询一条记录
> db.Account.findOne()
{
"_id" : ObjectId("4ded95c3b7780a774a099b7c"),
"UserName" : "libing",
"Password" : "1",
"Email" : "libing@126.cn",
"RegisterDate" : "2011-06-07 11:06:25"
}
--SELECT TOP 1 * FROM Account
查询聚集中字段的不同记录
> db.Account.distinct("UserName")
--SELECT DISTINCT("UserName") FROM Account
查询聚集中UserName包含“keyword”关键字的记录
db.Account.find({"UserName":/keyword/})
--SELECT * FROM Account WHERE UserName LIKE '%keyword%'
查询聚集中UserName以"keyword" 开头的记录
> db.Account.find({"UserName":/^keyword/})
--SELECT * FROM Account WHERE UserName LIKE 'keyword%'
查询聚集中UserName以“keyword”结尾的记录
> db.Account.find({"UserName":/keyword$/})
--SELECT * FROM Account WHERE UserName LIKE '%keyword'
查询聚集中指定列
> db.Account.find({},{"UserName":1,"Email":1}) --1:true
--SELECT UserName,Email FROM Account
查询聚集中排除指定列
> db.Account.find({},{"UserName":0}) --0:false
查询聚集中指定列,且Age > 20
> db.Account.find({"Age":{"$gt":20}},{"UserName":1,"Email":1})
--SELECT UserName,Email FROM Account WHERE Age > 20
聚集中字段排序
> db.Account.find().sort({"UserName":1}) -- 升序
> db.Account.find().sort({"UserName":-1}) --降序
--SELECT * FROM Account ORDER BY UserName ASC
--SELECT * FROM Account ORDER BY UserName DESC
统计聚集中记录条数
> db.Account.find().count()
--SELECT COUNT(*) FROM Account
统计聚集中符合条件的记录条数
> db.Account.find({"Age":{"$gt":20}}).count()
-- SELECT COUNT(*) FROM Account WHERE Age > 20
统计聚集中字段符合条件的记录条数
> db.Account.find({"UserName":{"$exists":true}}).count()
--SELECT COUNT(UserName) FROM Account
查询聚集中前5条记录
> db.Account.find().limit(5)
--SELECT TOP 5 * FROM Account
查询聚集中第10条以后的记录
> db.Account.find().skip(10)
--SELECT * FROM Account WHERE AccountID NOT IN (SELECT TOP 10 AccountID FROM Account)
查询聚集中第10条记录以后的5条记录
> db.Account.find().skip(10).limit(5)
--SELECT TOP 5 * FROM Account WHERE AccountID NOT IN (SELECT TOP 10 AccountID FROM Account)
or查询
> db.Account.find({"$or":[{"UserName":/keyword/},{"Email":/keyword/}]},{"UserName":true,"Email":true})
--SELECT UserName,Email FROM Account WHERE UserName LIKE '%keyword%' OR Email LIKE '%keyword%'
添加新记录
> db.Account.insert({AccountID:2,UserName:"lb",Password:"1",Age:25,Email:"libing@163.com",RegisterDate:"2011-06-09 16:36:95"})
修改记录
> db.Account.update({"AccountID":1},{"$set":{"Age":27,"Email":"libingql@163.com"}})
> db.Account.find({"AccountID":1})
{ "AccountID" : 1, "Age" : 27, "Email" : "libingql@163.com", "Password" : "1", "RegisterDate" : "2011-06-09 16:31:25", "UserName" : "libing", "_id" : ObjectId("4df08553188e444d001a763a") }
> db.Account.update({"AccountID":1},{"$inc":{"Age":1}})
> db.Account.find({"AccountID":1})
{ "AccountID" : 1, "Age" : 28, "Email" : "libingql@163.com", "Password" : "1", "RegisterDate" : "2011-06-09 16:31:25", "UserName" : "libing", "_id" : ObjectId("4df08553188e444d001a763a") }
删除记录
> db.Account.remove({"AccountID":1}) --DELETE FROM Account WHERE AccountID = 1
> db.Account.remove({"UserName":"libing"}) --DELETE FROM Account WHERE UserName = 'libing'
> db.Account.remove({"Age":{$lt:20}}) --DELETE FROM Account WHERE Age < 20
> db.Account.remove({"Age":{$lte:20}}) --DELETE FROM Account WHERE Age <= 20
> db.Account.remove({"Age":{$gt:20}}) --DELETE FROM Account WHERE Age > 20
> db.Account.remove({"Age":{$gte:20}}) --DELETE FROM Account WHERE Age >= 20
> db.Account.remove({"Age":{$ne:20}}) --DELETE FROM Account WHERE Age != 20
> db.Account.remove({}) --全部删除
sudo netstat -nputl
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1109/mongod
看了一下MongoDB 的服务监听的地址,因此你使用192.168.1.4,是链接不上的,会被拒绝,这个一个元应 mongod文件添加如下行,已存在请修改
bind_ip = 0.0.0.0
另外如果是redhat,centos 系列的,打开防火墙端口
iptables -A INPUT -p tcp -m tcp --dport 27017 -j ACCEPT
暂时关闭selinux
MongoDB 3.2 在CentOS 上的安装和配置的更多相关文章
- MongoDB在CentOS上的安装和配置
1. 创建mongodb-org-4.0.repo文件,并放入/etc/yum.repos.d目录下,repo文件内容如下 [mongodb-org-4.0] name=MongoDB Reposit ...
- Cacti中文版在Centos上的安装
最近老有人问Cacti中文版在哪下载啊怎么安装啊,我在这里一遍给大家讲解了:Cacti中文版在Centos上的安装 1.基本安装 cacti是运作在apache+php+mysql+net-snmp工 ...
- 环境搭建系列-系统安装之centos 6.5安装与配置
按照国际惯例,系列目录先奉上: 系列一:系统安装之centos 6.5安装与配置 系列二:准备工作之Java环境安装 系列三:数据为先之MySQL读写集群搭建 系列四:谈分布式之RabbitMQ集群搭 ...
- 在CentOS 7中安装与配置Tomcat-8方法
安装前提 在CentOS 7中安装与配置JDK8 安装tomcat apache-tomcat-8.0.14.tar.gz文件上传到/usr/local中执行以下操作: [root@localhos ...
- 如何在 CentOS 7 中安装、配置和安全加固 FTP 服务
步骤 1:安装 FTP 服务器 1. 安装 vsftpd 服务器很直接,只要在终端运行下面的命令. # yum install vsftpd 2. 安装完成后,服务先是被禁用的,因此我们需要手动启动, ...
- CentOS 下 redis 安装与配置
CentOS 下 redis 安装与配置 1.到官网上找到合适版本下载解压安装 [root@java src]# wget -c http://redis.googlecode.com/files ...
- Win7上Git安装及配置过程
Win7上Git安装及配置过程 文档名称 Win7上Git安装及配置过程 创建时间 2012/8/20 修改时间 2012/8/20 创建人 Baifx 简介(收获) 1.在win7上安装msysgi ...
- 在Linux上怎么安装和配置Apache Samza
samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...
- Linux平台上轻松安装与配置Domino
Linux平台上轻松安装与配置Domino Domino Server的编译安装过程中需要用到libstdc++-2.9和glibc-2.1.1(或者其更高的版本)两个编译模块,它们是Linux开发编 ...
随机推荐
- JavaScript基础:
一. JavaScript概述 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型. document.write("<h1>这是一个标 ...
- linux中制作动态库
制作一个动态库我们可以使用gcc工具来制作一个动态库示例:自己制作一个动态库,库函数的功能是传递一个字符串并输出.第一步:需要准备3个文件:hello.h.hello.c.test.c.其中hello ...
- windows 下隐藏 system 函数弹窗
概述 下面的程序是解决windows 下面调用 system() 函数的时候,会有窗口弹出的问题 头文件 #include <windows.h> 源码 /** * @brief 普通字符 ...
- C# 中out 参数 和 ref参数的区别
C#中共有4种参数类型,分别是 传值(by value), 传址 (by reference), 输出参数 (by output), 数组参数 (by array) by value => 传值 ...
- 10.Redis未授权访问漏洞复现与利用
一.漏洞简介以及危害: 1.什么是redis未授权访问漏洞: Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等 ...
- 23. CTF综合靶机渗透(十六)
靶机说明: VM Name: JIS-CTF : VulnUpload Difficulty: Beginner Description: There are five flags on this m ...
- linux c段错误分析方法
from:http://blog.csdn.net/adaptiver/article/details/37656507 一. 段错误原因分析 1 使用非法的指针,包括使用未经初始化及已经释放的指针( ...
- idea中java项目增加module后,手动增加xml文件,合并到webapp/WEB-INFO或WEB-INFO(包)
当手工增加一个module,增加配置文件(如:web.xml)需要合并到文件夹里,要不众多文件在一个src文件夹下,太凌乱. 1. 合并到webapp/WEB-INFO下 a. 首先增加webapp目 ...
- debian系Linux中文系统目录改为英文目录的解决方法
之前给笔记本装的kali是英文版,系统安装好了后再修改系统语言为中文,或者直接就用英文系统,也是可以的. 后来笔记本的硬盘坏掉了,换ssd,然后安装kali的中文版,中文是方便,但是进去后就不爽了. ...
- 引用静态资源的url添加版本号,解决版本发布后的浏览器缓存有关问题
在日常的工作中,我们经常会遇到页面文件(html,jsp等)中引用的js,css,图片等被修改后,而浏览器依然缓存着老版本的文件,客户一时半会看不到修改后的效果,同时也给生产环境的版本发布带来了一些问 ...