CentOS 6.5环境 MongoDB 3.2.8 单实例安装部署

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 本文是基于CentOS6.6操作系统上安装MongoDB3.2.8社区版。操作系统要求是64位,MongoDB要求下载64位版本。不建议生产环境部署单实例,可以部署集群,提高数据库的安全性、稳定性和可用性。
本文是基于CentOS6.6操作系统上安装MongoDB3.2.8社区版。操作系统要求是64位,MongoDB要求下载64位版本。不建议生产环境部署单实例,可以部署集群,提高数据库的安全性、稳定性和可用性。

配置大内存页面redhat_transparent_hugepage参数设置为never。
先查看该参数值
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/redhat_transparent_hugepage/defrag
[always] madvise never

配置disable-transparent-hugepages服务

vi /etc/init.d/disable-transparent-hugepages
#!/bin/bash
### BEGIN INIT INFO
# Provides: disable-transparent-hugepages
# Required-Start: $local_fs
# Required-Stop:
# X-Start-Before: mongod mongodb-mms-automation-agent
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Disable Linux transparent huge pages
# Description: Disable Linux transparent huge pages, to improve
# database performance.
### END INIT INFO

case $1 in
  start)
    if [ -d /sys/kernel/mm/transparent_hugepage ]; then
      thp_path=/sys/kernel/mm/transparent_hugepage
    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
      thp_path=/sys/kernel/mm/redhat_transparent_hugepage
    else
      return 0
    fi

    echo 'never' > ${thp_path}/enabled
    echo 'never' > ${thp_path}/defrag

    re='^[0-1]+$'
    if [[ $(cat ${thp_path}/khugepaged/defrag) =~ $re ]]
    then
      # RHEL 7
      echo 0 > ${thp_path}/khugepaged/defrag
    else
      # RHEL 6
      echo 'no' > ${thp_path}/khugepaged/defrag
    fi

    unset re
    unset thp_path
    ;;
esac

对该服务授权,并设置开机自启动
sudo chmod 755 /etc/init.d/disable-transparent-hugepages
sudo chkconfig --add disable-transparent-hugepages

重启服务器,并检查该参数是否已经生效
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/redhat_transparent_hugepage/defrag
always madvise [never]

提高默认文件描述符和进程/线程数限制
Linux默认的文件描述符数和最大进程数对于MongoDB来说一般会太低。建议把这个数值设为64000。因为MongoDB服务器对每一个数据库文件以及每一个客户端连接都需要用到一个文件描述符。如果这个数字太小的话在大规模并发操作情况下可能会出错或无法响应。 你可以通过以下命令来修改这些值:
ulimit -n 64000
ulimit -u 64000

配置用户与目录
MongoDB数据库默认情况下是没有做权限控制的,只要能够连接所开放的端口就能进行访问,而且拥有root级别的权限;对于生产环境而言是极不安全的,所以需要建立用户,进行授权控制。
# groupadd mongod
# useradd mongod -g mongod

# mkdir -p /u01/app/mongod/3.2.8/data
# mkdir -p /u01/app/mongod/3.2.8/logs
# chown -R mongod:mongod /u01/app/mongod/

# mv mongodb-linux-x86_64-rhel62-3.2.8.tgz /home/mongod/
# chown -R mongod:mongod /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8.tgz
su - mongod
$ tar -zxvf mongodb-linux-x86_64-rhel62-3.2.8.tgz 

配置参数
vi /u01/app/mongod/3.2.8/mongod.conf
dbpath=/u01/app/mongod/3.2.8/data
bind_ip=192.168.0.178,localhost
port=27001
oplogSize=5000
logpath=/u01/app/mongod/3.2.8/logs/mongod.log
logappend=true
fork=true

启动数据库,并创建超级管理员:
$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongod -f /u01/app/mongod/3.2.8/mongod.conf

创建管理与普通用户
登录mongodb数据库:
$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo --port 27001
> use admin
> db.createUser(
  {
  user:"Superadmin",
  pwd:"Password",
  roles:[{role:"root",db:"admin"}]
  }
  )

关闭mongodb进程,并在mongod.conf 文件的最后加上参数auth=true。出于安全考虑,禁止使用27017端口。
--auth: 在mongod启动项中加入--auth,mongodb启动后,就可以完成授权模块的启用);

vi /u01/app/mongod/3.2.8/mongod.conf
dbpath=/u01/app/mongod/3.2.8/data
bind_ip=192.168.0.178,localhost
port=27001
oplogSize=5000
logpath=/u01/app/mongod/3.2.8/logs/mongod.log
logappend=true
fork=true
auth=true


重新启动mongodb进程,创建普通用户。

> db.shutdownServer()


$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo --port 27001 -u Superadmin -p Password --authenticationDatabase admin
MongoDB shell version: 3.2.8
> use admin
switched to db admin
> db.auth("Superadmin","Password")
1

> use iot
switched to db iot
> db.createUser(
 {
  user:"myiot",
  pwd:"abc123",
  roles:[{role:"readWrite",db:"iot"}]
 }
 )

$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo 192.168.0.178:27001/iot -u myiot -p abc123

$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo --port 27001 -u Superadmin -p Passw0rd#72 --authenticationDatabase admin

创建集合索引

$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo 192.168.0.178:27001/iot -u myiot -p abc123

#
> db.ColdSignal.createIndex({ "recordDate" : 1, "deviceCode" : 1 });
> db.ColdSignal.createIndex({deviceCode:1,recordDate:1},{background:true,unique:true})

URI连接串格式
应用程序与数据库之间的连接串配置

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

文章结束!


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
9天前
|
Oracle Java 关系型数据库
CentOS 7.6操作系统部署JDK实战案例
这篇文章介绍了在CentOS 7.6操作系统上通过多种方式部署JDK的详细步骤,包括使用yum安装openjdk、基于rpm包和二进制包安装Oracle JDK,并提供了配置环境变量的方法。
164 80
|
2月前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
9天前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
72 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
9天前
|
Linux pouch 容器
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
关于如何在CentOS 7.6操作系统上安装和使用阿里巴巴开源的Pouch容器管理工具的实战教程。
43 2
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
|
28天前
|
机器学习/深度学习 文字识别 Linux
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS 7)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS 7)
25 1
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS 7)
|
9天前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
37 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
14天前
|
Linux 数据安全/隐私保护 网络虚拟化
centos7部署Pritunl
centos7部署Pritunl
|
14天前
|
Linux 数据安全/隐私保护 虚拟化
centos7部署openVPN
centos7部署openVPN
|
17天前
|
存储 安全 Ubuntu
部署在CentOS上,有什么优缺点
【8月更文挑战第25天】部署在CentOS上,有什么优缺点
34 1
|
21天前
|
关系型数据库 MySQL Linux
Linux(CentOS7)搭建LAMP服务环境
本文介绍了在Linux (CentOS 7) 上搭建LAMP服务环境的详细步骤,包括安装Apache HTTPd、解决编译时依赖问题、配置Apache服务、安装PHP以及处理PHP与Apache集成时遇到的问题。同时,还涉及了防火墙设置和SELinux权限调整,确保Web服务能够正常运行。
41 2