Hello World!构建你的第一个MongoDB数据库
安装好MongoDB之后,不要犹豫,马上跟随小编来构建你的第一个数据库吧。...
金国瑞
海量数据学院MongoDB高级讲师;
较早一批具有大型集群实战经验的MongoDB工程师;
拥有多年DBA实战经验,精通MongoDB集群、MySQL各种高可用架构、备份恢复、故障诊断及性能优化;
精通MongoDB集群,项目经验丰富,涉及领域包括银行、电商、电网、交通、媒体等。结合一线实战经验,教导学员学以致用、融会贯通,深受学员认可。
作者介绍
一、环境说明海量数据学院MongoDB高级讲师;
较早一批具有大型集群实战经验的MongoDB工程师;
拥有多年DBA实战经验,精通MongoDB集群、MySQL各种高可用架构、备份恢复、故障诊断及性能优化;
精通MongoDB集群,项目经验丰富,涉及领域包括银行、电商、电网、交通、媒体等。结合一线实战经验,教导学员学以致用、融会贯通,深受学员认可。
作者介绍
OS版本:CentOS 6.6
MongoDB版本:MongoDB 3.4.0
二、安装MongoDB
安装MongoDB之前,请按照《MongoDB最佳实践之操作系统篇》对你的操作系统进行调整,这里不再赘述。下面直奔主题。
1
准备工作
--创建运行mongodb的专门用户
# groupadd mongod
# useradd -g mongod mongod
--创建mongodb软件安装目录
# mkdir /mongodb
--上传二进制mongodb软件包并解压至/mongodb目录下
# tar zxvf mongodb-linux-x86_64-enterprise-rhel62-3.4.0.tgz -C /mongodb
# pwd
/mongodb
# ls
mongodb-linux-x86_64-enterprise-rhel62-3.4.0
# mv mongodb-linux-x86_64-enterprise-rhel62-3.4.0 mongodb_3.4.0
# ls
mongodb_3.4.0
--修改环境变量
# vi /etc/profile
export PATH=$PATH:/mongodb/mongodb_3.4.0/bin
使环境变量生效:
# source /etc/profile
--修改/mongodb目录权限
# chown -R mongod:mongod /mongodb/
--验证
# su - mongod
$ mongod --version
db version v3.4.0
git version: f4240c60f005be757399042dc12f6addbc3170c1
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: enterprise
build environment:
distmod: rhel62
distarch: x86_64
target_arch: x86_64
至此,你的mognodb软件安装成功了!
2
启动和停止MongoDB
启动MongoDB:
--创建数据和日志存放路径
# mkdir -p /db/data
# mkdir -p /db/log
# chown -R mongod:mongod /db
--启动mongodb
# su - mongod
$ mongod --dbpath=/db/data/ --logpath=/db/log/mongodb.log --logappend --fork
成功标识:
$ mongod --dbpath=/db/data/ --logpath=/db/log/mongodb.log --logappend --fork
about to fork child process, waiting until server is ready for connections.
forked process: 2108
child process started successfully, parent exiting
注:mongod后面跟上一堆参数,参数详细信息请使用help帮助。
$ mongod --help
这里列出几个必要的参数:
- dbpath:数据存放路径
- logpath:日志文件路径
- logappend:日志输出方式
- fork:在后台运行
- port:启用端口号,默认是27017
$ mongo
MongoDB shell version v3.4.0
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.0
MongoDB Enterprise >
至此,你的mongodb已经成功运行并登录了!
是不是很不舒服,启动一下MongoDB,后面要带上一堆参数,很长,很不舒服,那么将参数写到配置文件如何呢!
$ vi mongodb.conf
systemLog:
destination: file
logAppend: true
logRotate: rename
path: /db/log1/mongod.log
timeStampFormat: iso8601-local
processManagement:
fork: true
pidFilePath: /db/data1/mongod.pid
net:
bindIp: 192.168.1.21
port: 28019
http:
enabled: false
maxIncomingConnections: 100
operationProfiling:
mode: slowOp
slowOpThresholdMs: 100
security:
authorization: enabled
storage:
dbPath: /db/data1
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 1
directoryForIndexes: true
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
journal:
enabled: true
directoryPerDB: true
$ mongod -f mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 2108
child process started successfully, parent exiting
看到这里,你知道什么叫标准配置了吧!不对,慢慢入戏吧。
==关闭MongoDB
--获取mongod进程号
$ ps -ef|grep mongod
mongod 2108 1 12 17:39 ? 00:00:56 mongod --dbpath=/db/data/ --logpath=/db/log/mongodb.log --logappend --fork
--关闭MongoDB
$ kill 2108
或
$ kill -2 2108
原理:-2表示向mongod进程发送SIGINT信号。
或
$ kill -4 2108
原理:-4表示向mognod进程发送SIGTERM信号。
或
$ mongod -f mongodb.conf --shutdown
或着登录admin数据库
admin> db.shutdownServer()
或
admin> db.adminCommand({shutdown:1})
我想告诉你,关闭MongoDB有好几种方式,不要大惊小怪!
注:mongod进程收到SIGINT信号或者SIGTERM信号,会做一些处理
> 关闭所有打开的连接
> 将内存数据强制刷新到磁盘
> 当前的操作执行完毕
> ...
> 安全停止
!!!千万不要进行土匪操作:kill -9
> 数据库直接关闭
> 数据丢失
> 数据文件损失
> 修复数据库(成本高,有风险)
广而告知:MongoDB单机只适合练练手,测试环境。生产请使用副本集或者分片集群,有一万个理由!
下集预告:MongoDB提示符,让你的MongoDB跳出个蝙蝠侠!
近期精彩文章推荐
MongoDB全国前百位认证持有者火热招募中
MongoDB最佳实践之操作系统篇
《金融业DBA守则与案例》—下篇
《金融业DBA守则与案例》—上篇
我是如何获取OCM认证的
MongoDB最佳实践之操作系统篇
《金融业DBA守则与案例》—下篇
《金融业DBA守则与案例》—上篇
我是如何获取OCM认证的
关注 海量数据学院
微信扫一扫关注公众号