不多說,直接上干貨!
說在前面的話
首先,查看下你的操作系統的版本。
root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS \n \l root@zhouls-virtual-machine:~#
我的是Ubuntu 14.04.4
我的環境在Ubuntu14.04下搭建,注意:不同版本之間可能存在兼容性(其他的如16.04,我也暫時測試過)
Ubuntu16.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-ubuntu1404-3.4.4.tgz
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