MongoDB的单机部署(一)

1. MongoDB简介

2. MongoDB单机部署

2.1安装前准备

2.2安装步骤:

2.2.1. 解压安装包,和设置软件接

2.2.2.配置数据目录和日志目录

2.2.3. 配置环境变量

2.2.4 启动MongoDB

3.MongoDB的启动优化

4、FAQ


1. MongoDB简介

   MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

       MongoDB是开源、高性能、易扩展的文档数据库,一个介于关系数据库和非关系数据库之间的NoSQL数据库产品。

2. MongoDB单机部署

2.1安装前准备

安装环境:

操作系统:CentOS Linux release 7.4.1708 (Core)

安装包下载地址:https://www.mongodb.com/download-center/community

image2018-11-12 9:46:24.png

2.2安装步骤:

2.2.1. 解压安装包,和设置软件接

tar -xf mongodb-linux-x86_64-rhel70-4.0.4.tgz -C /opt
ln -s mongodb-linux-x86_64-rhel70-4.0.4  mongodb

2.2.2.配置数据目录和日志目录

cd /opt/mongodb
mkdir -p  /opt/mongodb/data                                        #创建存放数据的目录
mkdir -p  /opt/mongodb/log                                         #创建存放日志的目录
 
vim  /opt/mongodb/conf/config.conf #添加一下内容
systemLog:
  logAppend: true
  path: "/opt/mongodb/log/mongodb.log"                        #存放日志的地方
  destination: file
 
processManagement:
   fork: true                                                   #允许后台运行
   pidFilePath: "/opt/mongodb/mongod.pid"
 
net:
   port: 27017                                                #端口,为安全起见,可以使用其他端口
   bindIp: "0.0.0.0"                                          #生产环境使用127.0.0.1
 
storage:
   dbPath: "/opt/mongodb/data"                                #存放数据的地方
   journal:
      enabled: true

2.2.3. 配置环境变量

vim /etc/profile
export MONGODB_HOME=/opt/mongodb
export PATH=${MONGODB_HOME}/bin:$PATH
 
#生效
source /etc/profile

2.2.4 启动MongoDB

[root@bgsbtsp0006-dqf:opt]# mongod -f /opt/mongodb/conf/config.conf
 
[root@bgsbtsp0006-dqf:opt]# mongo --port 27017
 
MongoDB shell version v4.0.4
 
connecting to: mongodb://127.0.0.1:27017/
 
Implicit session: session { "id" :
  UUID("9e9885c2-8799-47b2-b10e-94251ad8b6df") }
  MongoDB server version: 4.0.3
  Server has startup warnings:
2018-11-27T17:09:50.933+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2018-11-27T17:09:50.933+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2018-11-27T17:09:52.145+0800 I CONTROL  [initandlisten]
2018-11-27T17:09:52.145+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-11-27T17:09:52.145+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2018-11-27T17:09:52.145+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2018-11-27T17:09:52.145+0800 I CONTROL  [initandlisten]
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten]
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten] ** WARNING: You are running on a NUMA machine.
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten] **          We suggest launching mongod like this to avoid performance problems:
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten] **              numactl --interleave=all mongod [other options]
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten]
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten]
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-11-27T17:09:52.147+0800 I CONTROL  [initandlisten]
 
  > show  dbs
admin   0.000GB
config  0.000GB
local   0.000GB

3.MongoDB的启动优化

根据上面启动后的warning的警告对mongodb数据库进行优化,每个情况可能不太一样。

  1. 第一个警告是文件系统格式,这个可以不用管。
  2. 第二个警告是新版本的MongDB为了让我们创建一个安全的数据库,解决方案:后面我们会创建用户,进行权限验证,该警告就没有了。
  3. 第三个警告是说不建议使用root用户,解决方案:可以创建一个普通用,普通用户启动,进入即可。
  4. 第四个警告是,解决方案:在原启动命令前面加numactl –interleave=all,即numactl --interleave=all mongod -f /opt/mongodb/conf/config.conf
  5. 第5个警告和第6个警告,解决方案:关闭大内存页面的transparent_hugepage。
echo 'never' >/sys/kernel/mm/transparent_hugepage/enabled
echo 'never'>/sys/kernel/mm/transparent_hugepage/defrag

上述是mongodb数据库的单机安装。

4、FAQ

  1. 配置文件启动后,如果关闭掉,再启动必须要把mongod.lock文件给删了,该文件一般是在存放数据的目录dbpath下,否则后台启动不成功。
  2. 配置文件内容不正确也会启动不起了,这个一般在启动的时候会给出提示,自己检查或者看官网yaml格式的配置文件即可,最坑人的是日志文件如果你没有指定,只是给一个目录,那么启动时也不会提示错误,也起不起来,还不好排错(浪费了大半天时间)。
  3. 如果是普通用户启动,关闭后,再启动的时候,如果不小心用来root启动,那么也会启动起来,当你发现后,再准备有用普通用户起的时候,发现启动不了。原因是除了删除mongod.lock文件,还要看看当前dbpath目录下其他文件是否被篡改了属组权限,其次/tmp/mongodb-*.sock文件的属组属性。
about to fork child process, waiting until server is ready for connections.
forked process: 38050
ERROR: child process failed, exited with error number 1

  这是集群部署的截图,意思明白就行了,这个文件会被改成root。集群部署的时候,日志中好像还没有日志,最后单独再部署一台,按照之前的错误操作重做一遍,才在日志中发现了这个文件的权限问题。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值