Hello World!构建你的第一个MongoDB数据库

 

安装好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
登录MongoDB:

$ 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认证的



    关注 海量数据学院


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册