CentOS 7下MongoDB的安装配置详解

一、Mongodb安装

以下安装步骤以dp用户执行

1. 下载mongodb 3.4.2的安装包:

“mongodb-linux-x86_64-rhel70-3.4.2.tgz”,放在~/software下。

2. 解压该文件包:

$ cd ~/software
$ tar -xf mongodb-linux-x86_64-rhel70-3.4.2.tgz

得到文件夹 mongodb-linux-x86_64-rhel70-3.4.2/,其中的bin文件夹包含Mongodb的所有可执行文件。

3. 将bin文件夹拷贝到dp用户的默认可执行文件目录~/bin

$ mv bin ~/

4. 创建数据库文件夹

创建数据库文件目录,放在~/data/db下

$ mkdir -p ~/data/db

启动mongod服务

$ mongod -dbpath ~/data/db -port 7974

如可以启动,则安装成功。如不成功,可能需要进行SELinux配置,允许MongoDB可以在相应端口启动

# semanage port -a -t mongod_port_t -p tcp 7974

注:7974是本项目MongoDB使用的端口,代替默认端口 27017

二、MongoDB配置

1. 写配置脚本:

创建一个脚本mongod.conf,存放在/home/dp/data/mongodb/config下,内容为

systemLog:
 destination: file
###日志存储位置
 path: /home/dp/data/mongodb/log/mongod.log
 logAppend: true
storage:
##journal配置
 journal:
 enabled: true
##数据文件存储位置
 dbPath: /home/dp/data/db/
##是否一个库一个文件夹
 directoryPerDB: true
##数据引擎
 engine: wiredTiger
##WT引擎配置
 wiredTiger:
 engineConfig:
##WT最大使用cache(根据服务器实际情况调节4~8)
  cacheSizeGB: 4
##是否将索引也按数据库名单独存储
  directoryForIndexes: true
##表压缩配置,数据压缩算法,可选值“none”、“snappy”、“zlib”
 collectionConfig:
  blockCompressor: none
##索引配置
 indexConfig:
  prefixCompression: true
##使mongo进程成为系统集成(父id为1)
processManagement:
 fork: true
##端口配置,将默认端口设为7974(默认为27017)
net:
 port: 7974

2. 取消透明大页:

MongoDB建议关闭Linux系统默认开启的透明大页功能,可编辑rc.local文件,使其在系统启动的时候关闭:

编辑rc.local文件:

[root@localhost ~]# vim /etc/rc.d/rc.local

增加下列内容:

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
 echo never > /sys/kernel/mm/transparent_hugepage/enabled
 fi
 if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
 echo never > /sys/kernel/mm/transparent_hugepage/defrag
 fi

保存退出,然后赋予rc.local文件执行权限:

[root@fx dp]# chmod +x /etc/rc.d/rc.local

再重启系统即可。

3. 将MongoDB设为开机启动

在CentOS 7下使用systemctl服务管理方式配置MongoDB的启动:

CentOS 7的服务systemctl脚本存放在/usr/lib/systemd/,MongoDB需要开机不登陆就能运行,就要存在系统服务/usr/lib/systemd/system目录下。

每一个服务以.service结尾,如mongod.service。内容分为3部分:[Unit]、[Service]和[Install]

[Unit]
Description=MongoDB database server
After=network.target
After=syslog.target

[Service]
#Type=forking #一次性启动,mongod的后台保持由mongod自己的配置文件中定义
Type=oneshot
User=dp
#PIDFile=/home/dp/data/mongodb/pid
ExecStart=/usr/bin/numactl --interleave=all /home/dp/bin/mongod -f /home/dp/data/mongodb/config/mongod.conf
#ExecReload=
#ExecStop=
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注:MongoDB建议关闭NUMA功能,用 numactl --interleave=all 方式启动 mongod 进程
脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下,这时就可以利用systemctl进行配置:

  • 重新加载配置文件用systemctl daemon-reload
  • 用systemctl start mongod可测试服务是否可以成功运行
  • 如果不能运行则可以使用systemctl status mongod查看错误信息和其他服务信息。

如果无法启动MongoDB,可检查日志/home/dp/data/mongodb/log/mongod.log,如果是由于如下错误:

WiredTiger error (13) [1488260221:910792][6102:0x7f33bf806dc0], file:WiredTiger.wt, connection: /home/dp/data/db/WiredTiger.turtle: handle-open: open: Permission denied

可能是由于WiredTiger.turtle的权限不足,或所有者不是dp用户,可以用chmod、chown、chgrp命令修改该文件的属性。

使用systemctl enable mongod就可以将所编写的服务添加至开机启动。

三、MongoDB的安全配置

1. 修改登陆端口号和IP

在配置文件/home/dp/data/mongodb/config/mongod.conf下,定义:

net:
 bindIp: 127.0.0.1,192.168.117.55
 port: 79742017/3/8 16:59:55 2017/3/8 16:59:58

2. 添加认证用户

在刚安装完毕的时候,MongoDB都默认有一个admin数据库,此时admin数据库是空的,没有记录权限相关的信息。当集合admin.system.users中一个用户都没有时,即使mongod启动时添加了—auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作(不管是否是以—auth 参数启动),直到在admin.system.users中添加了一个用户。加固的核心是只有在admin.system.users中添加用户之后,mongodb的认证,授权服务才能生效。

步骤一:在未开启认证的环境下,登录到数据库

[dp@fx]$ mongo 127.0.0.1:7974

步骤二:切换到admin数据库

> use admin

步骤三:创建管理员账号

>db.createUser({user:"ems",pwd:"pubugou2017",roles:["root"]})

新增的用户在 db.system.users 中

> db.getCollectionNames()
[ "system.indexes", "system.users", "system.version" ]

说明:

1)MongoDB从V3版本开始取消使用addUser方法,采用db.createUser方法创建用户;

2)账号不要设置为常见账号,密码需要满足一定的复杂度,至少8位以上,包括大小写字母、数字、特殊字符混合体,不要使用生日、姓名、身份证编号等常见密码。

步骤四:验证用户是否创建成功

> db.auth("supper","supWDxsf67%H")
1
> exit
bye

步骤五:杀掉进程,重启mongoDB服务

四、Mongodb C drive安装

1. 下载Mongodb C驱动文件解压

下载地址为:mongo-c-driver 1.61

2. 运行配置脚本

$ ./configure –disable-automatic-init-and-cleanup

3. 编译

$ make

4. 安装

$ sudo make install

注:使用 sudo 应先对dp用户的sudo权限进行设置,命令为

 # visudo

或者使用root用户

# make install

安装生成的头文件在/usr/local/include/libmongoc-1.0下,库文件在/usr/local/lib下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • CentOS系统下MongoDB安装及配置教程

    一.准备工作: 运行yum命令查看MongoDB的包信息 复制代码 代码如下: [root@vm ~]# yum info mongo-10gen (提示没有相关匹配的信息,) 说明你的centos系统中的yum源不包含MongoDB的相关资源,所以要在使用yum命令安装MongoDB前需要增加yum源,也就是在 /etc/yum.repos.d/目录中增加 *.repo yum源配置文件,以下分别是针对centos 64位和32位不同的系统的MongoDB yum 源配置内容: 我们这里就将该

  • centos yum 安装 mongodb 以及php扩展

    一,安装mongodb,php扩展 [root@localhost ~]# yum install php-pecl-mongo mongodb mongodb-devel mongodb-server php扩展,mongodb服务端,mongodb客户就装好了. 二,配置/etc/mongodb.conf [root@localhost www]# cat /etc/mongodb.conf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}

  • 在阿里云centos下部署mongodb教程

    本教程是在阿里云centos下部署mongodb的过程,整个过程遇到不少坑,浪费了很多时间.在网上查了很多教程,但是由于教程大多太久了,环境都不一样了,所以教程绝大部分走不通.为此走过不少坑,所以在此做一下记录. 环境: 系统:阿里云centos 7.3 64位 mongodb版本: 3.4 因为使用yum安装非常方便,所以下文使用yum安装,. 修改yum包管理配置: vi /etc/yum.repos.d/mongodb-org-3.4.repo   // 会自动新建mongodb-org-

  • CentOS上安装Node.js和mongodb笔记

    之前听说过Node.js,只是知道它可以应用于服务器端,但是对很多具体的东西并不了解.今天在QCon上听了袁锋的分享<Node.js脱离了浏览器的Javascript>之后,顿时有了想立刻试一下的冲动. Node.js的安装步骤算是比较简单,没有太多的弯路,主要参考文档: Building and Installing Node.js 1. 安装Python 根据参考文档说明,从源代码编译安装Node.js需要python2.6或者以上,而通过yum install python.x86_64

  • CentOS 6.5系统中使用yum安装MongoDB 2.6 教程

    下面我们在CentOS 6.5 x64系统上安装最新的MongoDB 2.6.0版. MongoDB v2.4.x版的软件仓库有两个包: 1)mongo-10gen-server 此包里面有最新版的mongod和mongos守护程序以及相关的配置和初始化脚本. 2)mongo-10gen 此包里面有最新版的所有MongoDB工具.这些工具方便你管理MongoDB系统. 但在MongoDB v2.6.0版的软件仓库一共有五个包: 1)mongodb-org 此包是元数据包,它可以实现自动安装下面的

  • centos6.5中安装mongodb简明总结

    step1: 下载https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.11.tgz 最新版,这个是linux64位下载地址,你也可以到首页自己选择 step2: 解压tar vxf mongodb-linux-x86_64-2.4.11.tgz,解压完之后,进入到根(/)目录,创建data/db文件夹 step3: 进入解压完之后的mongodb文件夹,进入bin目录,运行./mongod,发现出现错误信息:Please make

  • Centos 7下Mongodb开机无法自启动的解决方法

    前言 首先下载的mongodb有bug,需要自己手动fix,这种只是对特定版本有问题,并非所有版本都有这个问题, SeLinux 另外,一定要把selinux设置为disabled或者permissive 问题描述 sudo systemctl status mongod.service 看到服务起不来,于是打开log文件: cat /var/log/mongodb/mongod.log 有如下问题,是因为无法创建pid文件 ***** SERVER RESTARTED ***** ERROR:

  • 阿里云CentOS7安装Mongodb教程

    一.概述 近日要在新的CentOS系统上安装MongoDB,某度结果后直接从Mongo官网直接获得3.2版本的下载链接,结果在下载时发觉速度慢的可怜.迫于无奈,只能找国内的镜像下载.切换国内的安装源后,使用yum的方式安装后发现,安装的MongoDB版本居然是2.8的.一番研究后,贴出以下操作方式,提供给后人操作. 二.操作过程 1.首先更新一下包吧,多更无害. sudo yum -y update 2.在/etc/yum.repos.d 创建一个 mongodb-org.repo 文件 sud

  • CentOS 7下MongoDB的安装配置详解

    一.Mongodb安装 以下安装步骤以dp用户执行 1. 下载mongodb 3.4.2的安装包: "mongodb-linux-x86_64-rhel70-3.4.2.tgz",放在-/software下. 2. 解压该文件包: $ cd -/software $ tar -xf mongodb-linux-x86_64-rhel70-3.4.2.tgz 得到文件夹 mongodb-linux-x86_64-rhel70-3.4.2/,其中的bin文件夹包含Mongodb的所有可执行

  • linux环境下Django的安装配置详解

    1. 下载安装Django pip install Django==1.6.5 测试是否安装成功 >>> import django>>> django.VERSION (1, 6, 5, 'final', 0) 2. 安装数据库MySQL 说明:使用python连接到MySQL前提是需要让一个python连接到MySQL的接口--MySQLdb 下载 安装 tar xfz MySQL-python-1.2.1.tar.gz cd MySQL-python-1.2.1

  • Redis 对比 Memcached 并在 CentOS 下进行安装配置详解

    Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,本篇文章主要介绍了Redis 对比 Memcached 并在 CentOS 下进行安装配置详解,有兴趣的可以了解一下. 了解一下 Redis Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,使用 ANSI C 编写,并提供多种语言的 API ,它几乎没有上手难度,只需要几分钟我们就能完成安装工作,并让它开始与应用程序顺畅协作.换句话来说,只需投入一小部分时间与精力,大家就能获得立竿

  • Maven的安装配置详解

    下载maven 解压路径: 打开环境变量:右键此电脑-属性-高级系统设置-高级-环境变量 添加以下系统变量: 测试:win+r输入cmd 输入mvn -v,如果出现下面这些信息,就说明maven安装成功,环境变量设置成功. 修改本地仓库路径: 阿里云仓库的配置: <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus

  • R语言运行环境安装配置详解

    一.下载 这个是R 语言下载的镜像站点的列表 https://cran.r-project.org/mirrors.html 直接选择清华的站点来进行下载即可 https://mirrors.tuna.tsinghua.edu.cn/CRAN/ 选择版本进行下载 点击运行 进入安装界面 一路默认,安装完毕! 二.Pycharm内 好像根据环境变量,自动就配置好了,很方便 R语言下载及安装介绍到这里,你就可以用R语言写下你的第一行R语句了,打印个"Hello World!"试一下 >

  • 文件服务器 File Browser安装配置详解

    目录 前言 一.安装配置 二.使用 前言 一直想部署一套文件服务器,供队友之间相互传输文件.平时用微信发送文件真的太烦了,每发送或者接收一次都会有一个新的文件,造成重复文件太多了.文件服务器统一管理,自己需要什么文件再下载. 前面也安装过,是想使用 ftp ,安装了 vsftpd,配置也都成功,服务也启动了,可是访问一直有问题,而且查了下,有些使用工具有些是通过浏览器.实际的效果也并不好.这令天又特意搜索了下文件服务器的部署问题,看到了 File Browser,通过官网部署了一套,其相比之下有

  • Git 教程之安装配置详解

    Git 安装配置 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://git-scm.com/downloads Linux 平台上安装 Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具. 在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系

  • Nginx安装配置详解

    不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦.不过,我们往往只是需要一个静态 Server,或者一个反向代理 Server,这对 Nginx 来说小菜一碟. 简介 Nginx 的安装: # CentOS yum install nginx; # Ubuntu sudo apt-get install nginx; # Mac brew install nginx;

  • mysql安装配置详解教程(一)

    MySQL数据库具有跨平台性,不仅可以在Windows上运行,还可以在UNIX,Linux和Mac OS等操作系统上运行 1.先简单说下MySQL的版本: 根据操作系统的类型可分为:Windows版.UNIX版.Linux版和Mac OS版 根据用户群体的不同可分为:社区版(Community Edition)和企业版(Enterprise),社区版完全免费,企业版是收费的 根据发布顺序来区分可分为:4.1.5.0.5.1.5.4.6.0等版本 根据MySQL的开发情况分为:Alpha.Beta

  • Jenkins的安装配置详解

    Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 首先保证系统中已经安装了jdk 官网下载地址:http://mirrors.jenkins.io/war-stable/latest/jenkins.war 第一种启动方法:切换到jenkins.war存放的目录,输入如下命令: java -jar je

随机推荐