Linux系统下部署安装mongoDB

安装部署mongoDB


案例环境:

主机

操作系统

IP地址

Mongodb

CentOS 6.5

192.168.1.1

软件包:https://www.jianguoyun.com/p/DW4qkukQ9vb_BhiAs28

##安装启动MongoDB

1)首先需要安装相关软件包

yum -y groupinstall "Development tools"
yum -y install openssl openssl-devel
tar zxf mongodb-linux-x86_64-rhel62-4.0.2.tgz
mv mongodb-linux-x86_64-rhel62-4.0.2 /usr/local/mongodb​

2)创建MongoDB的数据存储目录/data/mogodb1,日志存储目录/data/logs,以及日志文件/data/logs/mongodb/mongodb1.log

​mkdir -p /data/mongodb1
mkdir -p /data/logs/mongodb
touch /data/logs/mongodb/mongodb1.log
chmod -R 777 /data/logs/mongodb/mongodb1.log

       当MongoDB处于频繁访问的状态时,如果shell启动进程所占用的资源设置过低的话,将会产生错误导致无法连接到MongoDB实例。需设置ulimit -n和ulimit -u的值大于20000。

ulimit -n 25000
ulimit -u 25000

3)创建MongoDB配置文件,定义启动所需相关参数

​
cd /usr/local/mongodb/bin/
vim mongodb.conf
  #!/bin/bash
  port=27017                                 //默认服务器端口号
  dbpath=/data/mongodb1                      //数据存储目录
  logpath=/data/logs/mongodb/mongodb1.log    //日志文件
  logappend=true                             //使用追加的方式写日志
  fork=true                                  //后台运行
  maxConns=5000                              //最大同时连接数,默认2000
  storageEngine=mmapv1                       //指定存储引擎为内存映射文件

需要注意:在之前编写MongoDB启动所需的配置文件时,要指定storageEngine为内存映射文件,才会出现.ns文件,如果没有添加storageEngine=mmapv1这行,会被记录为.wt文件。

4)添加防火墙规则

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT
service iptables save

5)设置内核参数,关闭NUMA

echo 0 >/proc/sys/vm/zone_reclaim_mode            //当某个节点可用内存不足时系统会从其他节点分配内存
sysctl -w vm.zone_reclaim_mode=0                  //永久设置

##启动MongoDB

/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
netstat -anpt | grep mongod
tcp        0      0 127.0.0.1:27017             0.0.0.0:*                   LISTEN      33475/mongod

##停止MongoDB的方法

ps aux | grep mongod
root      33475  0.3 10.0 1537520 100864 ?      Sl   04:29   0:00 /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
kill -2 33475
或者
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf –shutdown

##设置为开机自动启动

vim /etc/rc.local
  rm -rf /data/mongodb1/mongod.lock
  /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf​

##尝试访问MongoDB

/usr/local/mongodb/bin/mongo    就是MongoDB的客户端
/usr/local/mongodb/bin/mongo​

##进入MongoDB之后也可以这样关闭mongoDB

use admin;
db.shutdownServer();

##启动多实例

在单台服务器资源充分的情况下,可以使用多实例,以便充分使用服务器资源。

cd /usr/local/mongodb/bin/
cp mongodb.conf mongodb2.conf

vim /usr/local/mongodb/bin/mongodb2.conf
  #!/bin/bash
  port=27018                           //定义第二个实例服务端口号
  dbpath=/data/mongodb2              //定义第二个实例数据存储目录
  logpath=/data/logs/mongodb/mongodb2.log        //定义第二个实例日志文件
  logappend=true
  fork=true
  maxConns=5000
  storageEngine=mmapv1

创建相关目录

mkdir /data/mongodb2
touch /data/logs/mongodb/mongodb2.log
chmod -R 777 /data/logs/mongodb/mongodb2.log
cd /usr/local/mongodb/bin/
./mongod -f mongodb.conf
./mongod -f mongodb2.conf

netstat -anpt | grep mongod
tcp        0      0 127.0.0.1:27017             0.0.0.0:*                   LISTEN      2708/./mongod      
tcp        0      0 127.0.0.1:27018             0.0.0.0:*                   LISTEN      2729/./mongod

##为了便于运维人员管理,编写一个MongoDB数据库的控制脚本

vim /etc/init.d/mongod

  #!/bin/bash
  # chkconfig: - 99 20
  PROG="/usr/local/mongodb/bin/mongod"
  CONFIG=$1
  CONF="/usr/local/mongodb/bin/$CONFIG.conf"
  case "$2" in
   start)
    $PROG -f $CONF
    ;;
   stop)
    $PROG -f $CONF --shutdown
    ;;
   restart)
   $0 stop
   $0 start
   ;;
   *)
     echo "用法: $0 {start|stop|restart}"
     exit 2
  esac
  exit 0
chmod +x /etc/init.d/mongod
chkconfig --add mongod
service mongod mongodb start
service mongod mongodb2 start

##mongo数据库的相关操作

/usr/local/mongodb/bin/mongo
> show dbs;                  //查看当前实例下的数据库
> show databases;            //兼容关系型数据库MySQL命令
> use local;                  //切换数据库local
> show collections;           //查看数据库local的集合
> show tables;               //兼容关系型数据库MySQL命令

MongoDB的数据目录是/data/mongodb1,存储所有的MongoDB的数据文件。

ls -lh /data/mongodb1

Linux系统下部署安装mongoDB_第1张图片

> help

Linux系统下部署安装mongoDB_第2张图片

其中常用的基本操作如下表所示:

操作

作用

show dbs

查看当前实例下的数据库列表

show users

显示目录

use

切换当前数据库

db.help()

显示数据库操作命令

show collections

显示当前数据库中的集合

db.mycoll.help()

显示集合操作命令,mycoll是当前数据库下叫做mycoll的集合

db.foo.find()

对当前数据库中foo集合进行数据查找

> show dbs;
admin   0.078GB
config  0.078GB
local   0.078GB

> use test;                      //切换数据库test
> db.user.insert({"uid":1})          //user集合中插入一条数据
WriteResult({ "nInserted" : 1 })
> show dbs;                    //同样的,插入数据的同时,test也同样被创建
admin   0.078GB
config  0.078GB
local   0.078GB
test    0.078GB
> db.user.insert({"uid":2,"uname":"zhangsan","isvip":true,"sex":null,"favorite":["apple","banana",1,2,3],"regtime":new Date()})                                      //插入不同类型的数据

> db.user.find()                                //查看插入到user集合中的数据

 

> db.user.findOne({"uid":2})                     //查找其中uid=2的数据

Linux系统下部署安装mongoDB_第3张图片

 

> a=db.user.findOne({"uid":2})

Linux系统下部署安装mongoDB_第4张图片

> typeof(a.uid)

number

在Mongodb中数据类型没有MySQL那么多,无论是整型、短整型、长整型,浮点型,在Mongodb中都是64为的浮点数,均为number类型,简单,不需要区分。

你可能感兴趣的:(Linux系统下部署安装mongoDB)