本系列文章主要針對mongodb初學者
1. 下載下傳與安裝
1.1 下載下傳
下載下傳位址,根據作業系統選擇對應檔案:
https://www.mongodb.com/download-center#enterprise
我的環境是SUSE 11.4,下載下傳的檔案名為:
db2a:~ # ls mon*
mongodb-linux-x86_64-enterprise-suse11-3.4.6.tgz
1.2 安裝
下載下傳的檔案是一個壓縮包,解壓即可:
db2a:~ # tar -zxvf mongodb-linux-x86_64-enterprise-suse11-3.4.6.tgz
mongodb-linux-x86_64-enterprise-suse11-3.4.6/LICENSE.txt
mongodb-linux-x86_64-enterprise-suse11-3.4.6/README
mongodb-linux-x86_64-enterprise-suse11-3.4.6/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-enterprise-suse11-3.4.6/MPL-2
mongodb-linux-x86_64-enterprise-suse11-3.4.6/snmp/MONGOD-MIB.txt
mongodb-linux-x86_64-enterprise-suse11-3.4.6/snmp/MONGODBINC-MIB.txt
mongodb-linux-x86_64-enterprise-suse11-3.4.6/snmp/mongod.conf.master
mongodb-linux-x86_64-enterprise-suse11-3.4.6/snmp/mongod.conf.subagent
mongodb-linux-x86_64-enterprise-suse11-3.4.6/snmp/README-snmp.txt
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongodump
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongorestore
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongoexport
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongoimport
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongostat
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongotop
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/bsondump
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongofiles
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongooplog
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongoperf
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongod
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongos
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongo
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongodecrypt
mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/mongoldap
所有的指令都在mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/,是以要在PATH環境變量裡添加上這個路徑:
臨時添加:
db2a:~ # export PATH=/root/mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/:$PATH
永久添加:
db2a:~ # echo "export PATH=/root/mongodb-linux-x86_64-enterprise-suse11-3.4.6/bin/:$PATH" >> /etc/profile
db2a:~ # source /etc/profile
2. 啟動與關閉mongodb服務
2.1 啟動mongodb服務
mongodb預設的資料庫目錄為/data/db,需要先建立好,否則啟動會報錯
db2a:~ # mkdir -p /data/db
啟動mongodb服務的指令是mongod,這裡沒有加任何參數,表示使用預設的資料庫目錄/data/db和預設的端口27017
db2a:~ # mongod
2017-07-19T10:49:31.796+0800 I CONTROL [initandlisten] MongoDB starting : pid=9278 port=27017 dbpath=/data/db 64-bit host=db2a
2017-07-19T10:49:31.797+0800 I CONTROL [initandlisten] db version v3.4.6
2017-07-19T10:49:31.797+0800 I CONTROL [initandlisten] git version: c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5
2017-07-19T10:49:31.797+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 0.9.8j-fips 07 Jan 2009
2017-07-19T10:49:31.797+0800 I CONTROL [initandlisten] allocator: tcmalloc
2017-07-19T10:49:31.797+0800 I CONTROL [initandlisten] modules: enterprise
2017-07-19T10:49:31.797+0800 I CONTROL [initandlisten] build environment:
2017-07-19T10:49:31.797+0800 I CONTROL [initandlisten] distmod: suse11
2017-07-19T10:49:31.797+0800 I CONTROL [initandlisten] distarch: x86_64
2017-07-19T10:49:31.797+0800 I CONTROL [initandlisten] target_arch: x86_64
2017-07-19T10:49:31.797+0800 I CONTROL [initandlisten] options: {}
2017-07-19T10:49:31.846+0800 I - [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-07-19T10:49:31.846+0800 I STORAGE [initandlisten]
2017-07-19T10:49:31.846+0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-07-19T10:49:31.846+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-07-19T10:49:31.846+0800 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=684M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-07-19T10:49:35.330+0800 I CONTROL [initandlisten]
2017-07-19T10:49:35.330+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-07-19T10:49:35.330+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-07-19T10:49:35.330+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-07-19T10:49:35.331+0800 I CONTROL [initandlisten]
2017-07-19T10:49:35.331+0800 I CONTROL [initandlisten]
2017-07-19T10:49:35.331+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-07-19T10:49:35.331+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-07-19T10:49:35.331+0800 I CONTROL [initandlisten]
2017-07-19T10:49:35.331+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-07-19T10:49:35.331+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-07-19T10:49:35.331+0800 I CONTROL [initandlisten]
2017-07-19T10:49:35.808+0800 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-07-19T10:49:35.929+0800 I NETWORK [thread1] waiting for connections on port 27017
在另一個session看到27017處于監聽狀态:
db2a:~ # netstat -an | grep -i 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN
unix 2 [ ACC ] STREAM LISTENING 153655 /tmp/mongodb-27017.sock
2.2 關閉mongodb服務
有兩種辦法
第一種是在開啟mongodb的session裡按CTRL+C直接結束:
^C2017-07-19T11:40:27.474+0800 I CONTROL [signalProcessingThread] got signal 2 (Interrupt), will terminate after current cmd ends
2017-07-19T11:40:27.474+0800 I NETWORK [signalProcessingThread] shutdown: going to close listening sockets...
2017-07-19T11:40:27.474+0800 I NETWORK [signalProcessingThread] closing listening socket: 7
2017-07-19T11:40:27.474+0800 I NETWORK [signalProcessingThread] closing listening socket: 8
2017-07-19T11:40:27.474+0800 I NETWORK [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock
2017-07-19T11:40:27.474+0800 I NETWORK [signalProcessingThread] shutdown: going to flush diaglog...
2017-07-19T11:40:27.474+0800 I FTDC [signalProcessingThread] Shutting down full-time diagnostic data capture
2017-07-19T11:40:27.478+0800 I STORAGE [signalProcessingThread] WiredTigerKVEngine shutting down
2017-07-19T11:40:27.548+0800 I STORAGE [signalProcessingThread] shutdown: removing fs lock...
2017-07-19T11:40:27.548+0800 I CONTROL [signalProcessingThread] now exiting
2017-07-19T11:40:27.548+0800 I CONTROL [signalProcessingThread] shutting down with code:0
2017-07-19T11:40:27.548+0800 I CONTROL [initandlisten] shutting down with code:0
db2a:~ #
第二種是使用shutdownServer(),在另一個session裡輸入mongo來打開一個MongoDB Shell,可以在這個Shell裡輸入互動指令來管理mongodb:
db2a:/etc/init.d # mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.6
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
2017-07-19T11:43:09.314+0800 I STORAGE [initandlisten]
2017-07-19T11:43:09.314+0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-07-19T11:43:09.314+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten]
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten]
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten]
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten]
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-07-19T11:43:11.038+0800 I CONTROL [initandlisten]
MongoDB Enterprise > use admin
switched to db admin
MongoDB Enterprise > db.shutdownServer()
server should be down...
2017-07-19T11:44:32.233+0800 I NETWORK [thread1] trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed
2017-07-19T11:44:32.233+0800 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2017-07-19T11:44:32.233+0800 I NETWORK [thread1] reconnect 127.0.0.1:27017 (127.0.0.1) failed failed