Mongodb教程

一、Mongodb linux下安装(本人使用 ubuntu 17.10_desk)  2018-03-31 :20:11:02

1)下载mongodb社区办

官网网址:https://www.mongodb.com/download-center?jmp=nav#atlas

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz
或
curl -O  https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz

2)接着执行命令,将其解压到 本地目录文件下

root@jjw:tar -xvf mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz

3)移动到 /usr/local 文件夹下可以看到解压到的 mongodb 的文件夹,将文件夹重命名为 mongodb

root@jjw:mv mongodb-linux-x86_64-ubuntu1604-3.6.3 /usr/local/mongodb

4)创建数据及日志文件夹。直接在根目录下创建。即与 usr 同等级别。

 在mongodb中的bin目录下有这样的两个文件:mongod和mongo,mongod是服务器端,mongo是客户端。要启动mongodb服务,需要先开启mongod。需要注意的是,启动mongodb需要存储数据库文件的目录,如果没有这个目录的话会启动失败。不过可以使用--dbpath指定这个目录

root@jjw:sudo mkdir -pv /mongo/data/{mongodb_data,mongodb_log}   #创建文件夹 
root@jjw:sudo gedit  /mongo/data/mongodb_log/mongodb.log   #保存退出。创建一个日志文件  

5)创建配置文件

进入到根目录,执行如下操作,创建一个mongodb的配置文件,并写入如下信息。

root@jjw:sudo root@jjw:gedit /etc/mongodb.conf

写入如下信息:

root@jjw: vim mongodb.conf 

#端口号
port=27017  
#数据库文件存放目录
dbpath=/mongo/data/mongodb_data/
#日志文件目录
logpath=/mongo/data/mongodb_log/mongodb.log
#以守护程序方式启用、即在后台运行
fork=true  
#日志输出方式,使用追加的方式写日志
logappend=true 
#关闭http接口,默认关闭27018端口访问
#nohttpinterface=true
#生命这是一个集群的分片,默认端口27018
#shardsvr=true 
#设置每个数据库将被保存在一个单独的目录
#directoryperdb=true
#开启认证
#auth=true
#设开启简单的 rest API,滞后打开28017网页端口
#rest=true

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Mongodb命令参数说明:

基本配置:
----------------------------------------------------------------------------------------
--quiet                                  # 安静输出
--port arg                                # 指定服务端口号,默认端口27017
--bind_ip arg                              # 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP
--logpath arg                              # 指定MongoDB日志文件,注意是指定文件不是目录
--logappend                               # 使用追加的方式写日志
--pidfilepath arg                            # PID File 的完整路径,如果没有设置,则没有PID文件
--keyFile arg                              # 集群的私钥的完整路径,只对于Replica Set 架构有效
--unixSocketPrefix arg                        # UNIX域套接字替代目录,(默认为 /tmp)
--fork                                      # 以守护进程的方式运行MongoDB,创建服务器进程
--auth                                    # 启用验证
--cpu                                    # 定期显示CPU的CPU利用率和iowait
--dbpath arg                                      # 指定数据库路径
--diaglog arg                                  # diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads
--directoryperdb                                            # 设置每个数据库将被保存在一个单独的目录
--journal                              # 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
--journalOptions arg                                    # 启用日志诊断选项
--ipv6                                    # 启用IPv6选项
--jsonp                                # 允许JSONP形式通过HTTP访问(有安全影响)
--maxConns arg                                              # 最大同时连接数 默认2000
--noauth                                    # 不启用验证
--nohttpinterface                                  # 关闭http接口,默认关闭27018端口访问
--noprealloc                                      # 禁用数据文件预分配(往往影响性能)
--noscripting                                            # 禁用脚本引擎
--notablescan                                              # 不允许表扫描
--nounixsocket                                        # 禁用Unix套接字监听
--nssize arg (=16)                                    # 设置信数据库.ns文件大小(MB)
--objcheck                                          # 在收到客户数据,检查的有效性,
--profile arg                                                  # 档案参数 0=off 1=slow, 2=all
--quota                                        # 限制每个数据库的文件数,设置默认为8
--quotaFiles arg                                  # number of files allower per db, requires --quota
--rest                                                        # 开启简单的rest API
--repair                                          # 修复所有数据库run repair on all dbs
--repairpath arg                                      # 修复库生成的文件的目录,默认为目录名称dbpath
--slowms arg (=100)                                            # value of slow for profile and console log
--smallfiles                                  # 使用较小的默认文件
--syncdelay arg (=60)                            # 数据写入磁盘的时间秒数(0=never,不推荐)
--sysinfo                                # 打印一些诊断系统信息
--upgrade                                # 如果需要升级数据库

 * Replicaton 参数
--------------------------------------------------------------------------------------
--fastsync                                        # 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步
--autoresync                                      # 如果从库与主库同步数据差得多,自动重新同步,
--oplogSize arg                                  # 设置oplog的大小(MB)

* 主/从参数
----------------------------------------------------------------------------------------
--master                                                  # 主库模式
--slave                                                # 从库模式
--source arg                                                # 从库 端口号
--only arg                                                # 指定单一的数据库复制
--slavedelay arg                                              # 设置从库同步主库的延迟时间

 * Replica set(副本集)选项:
----------------------------------------------------------------------------------------
--replSet arg                                                # 设置副本集名称

 * Sharding(分片)选项
----------------------------------------------------------------------------------------
--configsvr                                          # 声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb
--shardsvr                                                # 声明这是一个集群的分片,默认端口27018
--noMoveParanoia                                                  # 关闭偏执为moveChunk数据保存

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

6)启动mongodb

sudo /usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/mongo/data/mongodb_data/ --logpath=/mongo/data/mongodb_log/mongodb.log --logappend

7)使用mongo

sudo /usr/local/mongodb/bin/mongo  
**验证mongoDB是否启动,输入命令lsof -i :27017,监测端口已经在使用中,所以说启动已经完成
lsof -i :27017

8)mongodb 设置为系统服务并设置开机启动

#!/bin/sh  

### BEGIN INIT INFO    
# Provides:     mongodb    
# Required-Start:    
# Required-Stop:    
# Default-Start:        2 3 4 5    
# Default-Stop:         0 1 6    
# Short-Description: mongodb    
# Description: mongo db server    
### END INIT INFO    

. /lib/lsb/init-functions

PROGRAM=/usr/local/mongodb/bin/mongod
MONGOPID=`ps -ef | grep 'mongod' | grep -v grep | awk '{print $2}'`

test -x $PROGRAM || exit 0

case "$1" in
  start)
     ulimit -n 3000
     log_begin_msg "Starting MongoDB server"
     $PROGRAM --fork --quiet --dbpath /mongo/data/mongodb_data/ --logpath /mongo/data/mongodb_log/mongodb.log
     log_end_msg 0
     ;;
  stop)
     log_begin_msg "Stopping MongoDB server"
     if [ ! -z "$MONGOPID" ]; then
        kill -15 $MONGOPID
     fi
     log_end_msg 0
     ;;
  status)
     ;;
  *)
     log_success_msg "Usage: /etc/init.d/mongodb {start|stop|status}"
     exit 1
esac

exit 0
保存完成之后,添加脚本执行权限,命令如下:
chmod +x /etc/init.d/mongod 
然后注册为开机执行
update-rc.d mongodb defaults  

删除服务可用这个命令

update-rc.d -f mongodb remove 

可以用这条命令开启服务

service mongodb start  

service mongodb stop  

验证mongoDB是否启动,输入命令lsof -i :27017,监测端口已经在使用中,所以说启动已经完成。
lsof -i :27017
 
原文地址:https://www.cnblogs.com/jiejunwang/p/8683824.html