您的位置:首页 > 数据库 > Mongodb

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

2017-06-17 21:17 1036 查看
 转  http://www.cnblogs.com/zlslch/p/6931838.html

 

 

 

  不多说,直接上干货!

 

 

 

 

说在前面的话

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



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,我也暂时测试过)

Ubuntu14.04下Mongodb安装部署步骤(图文详解)

 

 

 

 

 



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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb ubuntu
相关文章推荐