Ubuntu16.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)

 首先,查看下你的操作系统的版本。 

root@zhouls-virtual-machine:~# cat /etc/issue
Ubuntu 16.04.1 LTS \n \l

root@zhouls-virtual-machine:~#

 

  我的是Ubuntu 16.04.4

  我的环境在Ubuntu16.04下搭建,注意:不同版本之间可能存在兼容性(其他的如14.04,我也暂时测试过)

 

root@zhouls-virtual-machine:~# mongo
The program 'mongo' is currently not installed. You can install it by typing:
apt-get install mongodb-clients
root@zhouls-virtual-machine:~# 

 

 
 

   这里,建议大家不要直接就输入apt-get install mongodb-clients来安装。

这样有两点问题:

  1.安装的是客户端

  2.版本问题,这个很重要,项目中mongo数据库用的是2.6,而apt-get自动安装的根本不知道是什么版本,而mongodb不同版本之间是不能兼容的。所以如果根据需要是迁移数据库之类的,这样到后面会有超级一大堆的错误。

 

 

Mongodb安装包的下载

 mongo官网下载地址 (进入)

根据自己的需要选择版本下载,需要注意亮点:

  1.大版本保持一致,因为大版本之间不兼容

  2.mongodb亦按照基数版本不稳定的规则,一般用于生产环境的都是偶数版本,如果安装的是基数(例如2.7),进入时会出现一下提示。

 

  我这里,就选择最简单的和免费的,社区服务版本。

    我一般喜欢用tar.gz来下载安装,当然大家也可以选择用rpm方式来安装。

  我这里,就选择最简单的和免费的,社区服务版本。

 

https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.4.4.tgz

 

   我一般喜欢用tar.gz来下载安装,当然大家也可以选择用rpm方式来安装。

https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.4.4.tgz

 

 

 

   或者

大家,也可以安装最新的稳定版 MongoDB 或指定版本的 MongoDB。 

 

  安装MongoDB最新的稳定版本

  使用下列命令:

sudo apt-get install -y mongodb-org


  如果你想安装指定版本的MongoDB,请按照下面的方法。 
  下面的例子安装 3.2.0 版本的 MongoDB: 
  MongoDB的不同组件都可以指定相应的版本号

sudo apt-get install -y mongodb-org=3.2.0 mongodb-org-server=3.2.0 mongodb-org-shell=3.2.0 mongodb-org-mongos=3.2.0 mongodb-org-tools=3.2.0

 


mongodb的安装部署

   下载解压

  我这里,先暂时是,放在/home/zhouls/Downloads/下

 

 

 

 

 

zhouls@zhouls-virtual-machine:~/Downloads$ sudo -s
[sudo] password for zhouls: 
root@zhouls-virtual-machine:~/Downloads# pwd
/home/zhouls/Downloads
root@zhouls-virtual-machine:~/Downloads# ls
mongodb-linux-x86_64-ubuntu1604-3.4.4.tgz  vmware-tools-distrib
root@zhouls-virtual-machine:~/Downloads# tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.4.4.tgz 
mongodb-linux-x86_64-ubuntu1604-3.4.4/README
mongodb-linux-x86_64-ubuntu1604-3.4.4/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-ubuntu1604-3.4.4/MPL-2
mongodb-linux-x86_64-ubuntu1604-3.4.4/GNU-AGPL-3.0
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongodump
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongorestore
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongoexport
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongoimport
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongostat
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongotop
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/bsondump
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongofiles
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongooplog
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongoreplay
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongoperf
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongod
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongos
mongodb-linux-x86_64-ubuntu1604-3.4.4/bin/mongo
root@zhouls-virtual-machine:~/Downloads# 

 

 

 

  mongodb不需要像别的数据库那样配置解压后放到/usr/local

  但是为了方便管理,最好还是放到usr/local下面。

 

  命令如下:

root@zhouls-virtual-machine:~/Downloads# ls
mongodb-linux-x86_64-ubuntu1604-3.4.4      vmware-tools-distrib
mongodb-linux-x86_64-ubuntu1604-3.4.4.tgz
root@zhouls-virtual-machine:~/Downloads# mv mongodb-linux-x86_64-ubuntu1604-3.4.4  /usr/local/mongodb
root@zhouls-virtual-machine:~/Downloads# cd /usr/local
root@zhouls-virtual-machine:/usr/local# pwd
/usr/local
root@zhouls-virtual-machine:/usr/local# ls
bin  etc  games  include  lib  man  mongodb  sbin  share  src
root@zhouls-virtual-machine:/usr/local# 

 

 

 

   初步认识下,mongdb的目录结构

root@zhouls-virtual-machine:/usr/local/mongodb# pwd
/usr/local/mongodb
root@zhouls-virtual-machine:/usr/local/mongodb# ls
bin  GNU-AGPL-3.0  MPL-2  README  THIRD-PARTY-NOTICES
root@zhouls-virtual-machine:/usr/local/mongodb# 

 

 

 

 

   然后为了mongodb创建存储数据的文件目录和日志文件目录

 

root@zhouls-virtual-machine:/usr/local/mongodb# pwd
/usr/local/mongodb
root@zhouls-virtual-machine:/usr/local/mongodb# ls
bin  GNU-AGPL-3.0  MPL-2  README  THIRD-PARTY-NOTICES
root@zhouls-virtual-machine:/usr/local/mongodb# mkdir data
root@zhouls-virtual-machine:/usr/local/mongodb# mkdir log
root@zhouls-virtual-machine:/usr/local/mongodb# ls
bin  data  GNU-AGPL-3.0  log  MPL-2  README  THIRD-PARTY-NOTICES
root@zhouls-virtual-machine:/usr/local/mongodb# 

 

  进入到mongodb下面的bin里面查看mongodb帮助文档

root@zhouls-virtual-machine:/usr/local/mongodb# pwd
/usr/local/mongodb
root@zhouls-virtual-machine:/usr/local/mongodb# ls
bin  data  GNU-AGPL-3.0  log  MPL-2  README  THIRD-PARTY-NOTICES
root@zhouls-virtual-machine:/usr/local/mongodb# cd bin
root@zhouls-virtual-machine:/usr/local/mongodb/bin# pwd
/usr/local/mongodb/bin
root@zhouls-virtual-machine:/usr/local/mongodb/bin# ls
bsondump  mongodump    mongoimport  mongoreplay   mongostat
mongo     mongoexport  mongooplog   mongorestore  mongotop
mongod    mongofiles   mongoperf    mongos
root@zhouls-virtual-machine:/usr/local/mongodb/bin# ./mongod -h
Options:

General options:
  -h [ --help ]                         show this usage information
  --version                             show version information
  -f [ --config ] arg                   configuration file specifying 
                                        additional options
  -v [ --verbose ] [=arg(=v)]           be more verbose (include multiple times
                                        for more verbosity e.g. -vvvvv)
  --quiet                               quieter output
  --port arg                            specify port number - 27017 by default
  --bind_ip arg                         comma separated list of ip addresses to
                                        listen on - all local ips by default
  --ipv6                                enable IPv6 support (disabled by 
                                        default)
  --maxConns arg                        max number of simultaneous connections 
                                        - 1000000 by default
  --logpath arg                         log file to send write to instead of 
                                        stdout - has to be a file, not 
                                        directory
  --syslog                              log to system's syslog facility instead
                                        of file or stdout
  --syslogFacility arg                  syslog facility used for mongodb syslog
                                        message
  --logappend                           append to logpath instead of 
                                        over-writing
  --logRotate arg                       set the log rotation behavior 
                                        (rename|reopen)
  --timeStampFormat arg                 Desired format for timestamps in log 
                                        messages. One of ctime, iso8601-utc or 
                                        iso8601-local
  --pidfilepath arg                     full path to pidfile (if not set, no 
                                        pidfile is created)
  --keyFile arg                         private key for cluster authentication
  --noauth                              run without security
  --setParameter arg                    Set a configurable parameter
  --httpinterface                       enable http interface
  --transitionToAuth                    For rolling access control upgrade. 
                                        Attempt to authenticate over outgoing 
                                        connections and proceed regardless of 
                                        success. Accept incoming connections 
                                        with or without authentication.
  --clusterAuthMode arg                 Authentication mode used for cluster 
                                        authentication. Alternatives are 
                                        (keyFile|sendKeyFile|sendX509|x509)
  --nounixsocket                        disable listening on unix sockets
  --unixSocketPrefix arg                alternative directory for UNIX domain 
                                        sockets (defaults to /tmp)
  --filePermissions arg                 permissions to set on UNIX domain 
                                        socket file - 0700 by default
  --fork                                fork server process
  --networkMessageCompressors arg       Comma-separated list of compressors to 
                                        use for network messages
  --auth                                run with security
  --jsonp                               allow JSONP access via http (has 
                                        security implications)
  --rest                                turn on simple rest api
  --slowms arg (=100)                   value of slow for profile and console 
                                        log
  --profile arg                         0=off 1=slow, 2=all
  --cpu                                 periodically show cpu and iowait 
                                        utilization
  --sysinfo                             print some diagnostic system 
                                        information
  --noIndexBuildRetry                   don't retry any index builds that were 
                                        interrupted by shutdown
  --noscripting                         disable scripting engine
  --notablescan                         do not allow table scans
  --shutdown                            kill a running server (for init 
                                        scripts)

Replication options:
  --oplogSize arg                       size to use (in MB) for replication op 
                                        log. default is 5% of disk space (i.e. 
                                        large is good)

Master/slave options (old; use replica sets instead):
  --master                              master mode
  --slave                               slave mode
  --source arg                          when slave: specify master as 
                                        <server:port>
  --only arg                            when slave: specify a single database 
                                        to replicate
  --slavedelay arg                      specify delay (in seconds) to be used 
                                        when applying master ops to slave
  --autoresync                          automatically resync if slave data is 
                                        stale

Replica set options:
  --replSet arg                         arg is <setname>[/<optionalseedhostlist
                                        >]
  --replIndexPrefetch arg               specify index prefetching behavior (if 
                                        secondary) [none|_id_only|all]
  --enableMajorityReadConcern           enables majority readConcern

Sharding options:
  --configsvr                           declare this is a config db of a 
                                        cluster; default port 27019; default 
                                        dir /data/configdb
  --shardsvr                            declare this is a shard db of a 
                                        cluster; default port 27018

SSL options:
  --sslOnNormalPorts                    use ssl on configured ports
  --sslMode arg                         set the SSL operation mode 
                                        (disabled|allowSSL|preferSSL|requireSSL
                                        )
  --sslPEMKeyFile arg                   PEM file for ssl
  --sslPEMKeyPassword arg               PEM file password
  --sslClusterFile arg                  Key file for internal SSL 
                                        authentication
  --sslClusterPassword arg              Internal authentication key file 
                                        password
  --sslCAFile arg                       Certificate Authority file for SSL
  --sslCRLFile arg                      Certificate Revocation List file for 
                                        SSL
  --sslDisabledProtocols arg            Comma separated list of TLS protocols 
                                        to disable [TLS1_0,TLS1_1,TLS1_2]
  --sslWeakCertificateValidation        allow client to connect without 
                                        presenting a certificate
  --sslAllowConnectionsWithoutCertificates 
                                        allow client to connect without 
                                        presenting a certificate
  --sslAllowInvalidHostnames            Allow server certificates to provide 
                                        non-matching hostnames
  --sslAllowInvalidCertificates         allow connections to servers with 
                                        invalid certificates
  --sslFIPSMode                         activate FIPS 140-2 mode at startup

Storage options:
  --storageEngine arg                   what storage engine to use - defaults 
                                        to wiredTiger if no data files present
  --dbpath arg                          directory for datafiles - defaults to 
                                        /data/db
  --directoryperdb                      each database will be stored in a 
                                        separate directory
  --noprealloc                          disable data file preallocation - will 
                                        often hurt performance
  --nssize arg (=16)                    .ns file size (in MB) for new databases
  --quota                               limits each database to a certain 
                                        number of files (8 default)
  --quotaFiles arg                      number of files allowed per db, implies
                                        --quota
  --smallfiles                          use a smaller default file size
  --syncdelay arg (=60)                 seconds between disk syncs (0=never, 
                                        but not recommended)
  --upgrade                             upgrade db if needed
  --repair                              run repair on all dbs
  --repairpath arg                      root directory for repair files - 
                                        defaults to dbpath
  --journal                             enable journaling
  --nojournal                           disable journaling (journaling is on by
                                        default for 64 bit)
  --journalOptions arg                  journal diagnostic options
  --journalCommitInterval arg           how often to group/batch commit (ms)

WiredTiger options:
  --wiredTigerCacheSizeGB arg           maximum amount of memory to allocate 
                                        for cache; defaults to 1/2 of physical 
                                        RAM
  --wiredTigerStatisticsLogDelaySecs arg (=0)
                                        seconds to wait between each write to a
                                        statistics file in the dbpath; 0 means 
                                        do not log statistics
  --wiredTigerJournalCompressor arg (=snappy)
                                        use a compressor for log records 
                                        [none|snappy|zlib]
  --wiredTigerDirectoryForIndexes       Put indexes and data in different 
                                        directories
  --wiredTigerCollectionBlockCompressor arg (=snappy)
                                        block compression algorithm for 
                                        collection data [none|snappy|zlib]
  --wiredTigerIndexPrefixCompression arg (=1)
                                        use prefix compression on row-store 
                                        leaf pages

root@zhouls-virtual-machine:/usr/local/mongodb/bin# 

 

找到参数

--fork

--dbpath arg

--logpath arg

--nohttpinterface

 

启动 MongoDB数据库

  使用下列命令启动 mongod 进程。

sudo service mongod start

 

或者

  启动数据库(推荐

./mongod --dbpath=/usr/local/mongodb/data/ --fork --logpath=/usr/local/mongodb/log

  --dbpath=/usr/local/mongodb/data/ 用于指定存放的mongodb数据库

  --fork 是后台执行,不然一直在前台

  --logpath=/usr/local/mongodb/log用于指定mongodb的日志记录文件

 

 

mongodb启动时报错ERROR: child process failed, exited with error number 1

 


检查 MongoDB 是否成功启动

  通过检查 /var/log/mongodb/mongod.log 文件来确定 mongod 进程是否已经成功启动。 
或者查看进程

ps -ef | grep mongod

 

root@zhouls-virtual-machine:~# ps -ef | grep mongod
root       6072   4783  1 11:09 ?        00:00:01 ./mongod --dbpath=/usr/local/mongodb/data/ --fork --logpath=/usr/local/mongodb/log
root       6138   6126  0 11:12 pts/11   00:00:00 grep --color=auto mongod
root@zhouls-virtual-machine:~# 

 


启动后即可通过mongo命令进入数据库

 

  如果大家按照上面的步骤来,安装之后,还是出现这样的情况的话,则那么直接,用apt install mongodb-clients吧。

   

停止 MongoDB

sudo service mongod stop

 

重新启动 MongoDB

sudo service mongod restart


猜你喜欢

转载自blog.csdn.net/ghr5582/article/details/80609876