本文和大家分享的主要是Mongodb的一些參數(shù)及常見的一些錯(cuò)誤,一起來看看吧,希望對(duì)大家學(xué)習(xí)Mongodb有所幫助。
在 CentOS 7 上安裝 MongoDB
1 通過 SecureCRT 連接至 CentOS7 服務(wù)器;
2 進(jìn)入到 /usr/local/ 目錄:
cd /usr/local
3 在當(dāng)前目錄下創(chuàng)建 tools 目錄:
mkdir -p tools
4 進(jìn)入到 tools 目錄中:
cd tools
5 下載與 CentOS 系統(tǒng)匹配的 mongodb-linux-x86_64-rhel70-3.2.4.tgz 文件:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.4.tgz
6 解壓縮 mongodb-linux-x86_64-rhel70-3.2.4.tgz 文件:
tar -zxvf mongodb-linux-x86_64-rhel70-3.2.4.tgz
解壓完成后得到 mongodb-linux-x86_64-rhel70-3.2.4 文件夾及其所屬的文件;
7 重命名 mongodb-linux-x86_64-rhel70-3.2.4 文件為 mongodb3.2.4:
mv mongodb-linux-x86_64-rhel70-3.2.4 mongodb3.2.4
8 返回到上一級(jí)目錄,并創(chuàng)建 mongodb 目錄:
cd ../
mkdir -p mongodb
9 將 mongodb3.2.4 文件從 /usr/local/tools 目錄中移動(dòng)到 /usr/local/mongodb 目錄中:
mv tools/mongodb3.2.4/ mongodb/
10 進(jìn)入到 /usr/local/mongodb/mongodb3.2.4 目錄中:
cd mongodb/mongodb3.2.4
11 在 /usr/local/mongodb/mongodb3.2.4/bin/ 目錄中創(chuàng)建一個(gè)存放日志的目錄:
mkdir -p data/test/logs
12 在 /usr/local/mongodb/mongodb3.2.4/bin/ 目錄中創(chuàng)建一個(gè)存放數(shù)據(jù)文件的目錄:
mkdir -p data/test/db
13 進(jìn)入 bin 目錄中:
cd bin/
14 創(chuàng)建配置文件 mongodb.conf:
vi mongodb.conf
在 mongodb.conf 寫入如下內(nèi)容:
# idae - MongoDB config start - 2016-05-02
# 設(shè)置數(shù)據(jù)文件的存放目錄
dbpath = /usr/local/mongodb/mongodb3.2.4/bin/data/test/db
# 設(shè)置日志文件的存放目錄及其日志文件名
logpath = /usr/local/mongodb/mongodb3.2.4/bin/data/test/logs/mongodb.log
# 設(shè)置端口號(hào)(默認(rèn)的端口號(hào)是 27017)
port = 27017
# 設(shè)置為以守護(hù)進(jìn)程的方式運(yùn)行,即在后臺(tái)運(yùn)行
fork = true
# nohttpinterface = true
nohttpinterface = true
# idae - MongoDB config end - 2016-05-02
按英文狀態(tài)下的“:wq”保存并退出;
參數(shù)解釋:
--dbpath 數(shù)據(jù)庫路徑(數(shù)據(jù)文件)
--logpath 日志文件路徑
--master 指定為主機(jī)器
--slave 指定為從機(jī)器
--source 指定主機(jī)器的IP地址
--pologSize 指定日志文件大小不超過64M.因?yàn)?/span>resync是非常操作量大且耗時(shí),最好通過設(shè)置一個(gè)足夠大的oplogSize來避免resync(默認(rèn)的 oplog大小是空閑磁盤大小的5%)。
--logappend 日志文件末尾添加,即使用追加的方式寫日志
--journal 啟用日志
--port 啟用端口號(hào)
--fork 在后臺(tái)運(yùn)行
--only 指定只復(fù)制哪一個(gè)數(shù)據(jù)庫
--slavedelay 指從復(fù)制檢測(cè)的時(shí)間間隔
--auth 是否需要驗(yàn)證權(quán)限登錄(用戶名和密碼)
--syncdelay 數(shù)據(jù)寫入硬盤的時(shí)間(秒),0是不等待,直接寫入
--notablescan 不允許表掃描
--maxConns 最大的并發(fā)連接數(shù),默認(rèn)2000
--pidfilepath 指定進(jìn)程文件,不指定則不產(chǎn)生進(jìn)程文件
--bind_ip 綁定IP,綁定后只能綁定的IP訪問服務(wù)
15 啟動(dòng) mongodb 服務(wù):
15.1 以自定義的 mongodb 配置文件方式啟動(dòng):
./mongod --config mongodb.conf
15.2 以修復(fù)模式啟動(dòng) mongodb:
./mongod --repair -f mongodb.conf
15.3 以參數(shù)式啟動(dòng):
./mongod /usr/local/mongodb/mongodb3.2.4/bin/mongod --dbpath=/usr/local/mongodb/mongodb3.2.4/bin/data/test/db --logpath=/usr/local/mongodb/mongodb3.2.4/bin/data/test/logs/mongodb.log --fork
如果報(bào)如下錯(cuò)誤:
ERROR: child process failed, exited with error number 1
很可能是 mongodb.conf 中配置的路徑不一致問題;
如果報(bào)如下錯(cuò)誤:
ERROR: child process failed, exited with error number 100
很可能是沒有正常關(guān)閉導(dǎo)致的,那么可以刪除 mongod.lock 文件
15 查看 mongodb 進(jìn)程:
ps aux |grep mongodb
16 查看 mongodb 服務(wù)的運(yùn)行日志:
tail -200f /usr/local/mongodb/mongodb3.2.4/bin/data/test/logs/mongodb.log
17 檢查端口是否已被啟動(dòng):
netstat -lanp | grep 27017
18 殺死 mongodb 進(jìn)程,即可關(guān)閉 mongodb 服務(wù):
kill -15 PID
PID 可以通過步驟 16 查看到
19 如果出現(xiàn)如下情況
warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
可以采用如下兩種方式解決:
18.1 若數(shù)據(jù)庫出現(xiàn)如上不能連接的原因,可能是data目錄下的mongod.lock文件問題,可以用如下命令修復(fù):
./bin/mongod --repair
18.2 或者直接刪除mongod.lock
rm -f /usr/local/mongodb/data/db/mongod.lock
然后再啟動(dòng) mongodb 服務(wù):
./mongod --config mongodb.conf
如果以上兩部依然解決不掉,則是路徑文件,我們可以刪除 /usr/local/mongodb/mongodb3.2.4/bin/data 目錄及其子目錄,并采用絕對(duì)路徑的方式:
./mongod /usr/local/mongodb/mongodb3.2.4/bin/mongod --dbpath=/usr/local/mongodb/mongodb3.2.4/bin/data/test/db --logpath=/usr/local/mongodb/mongodb3.2.4/bin/data/test/logs/mongodb.log --fork
20 將 mongodb 服務(wù)加入到自啟動(dòng)文件中:
vi /etc/rc.local
在文件末尾追加如下命令:
/usr/local/mongodb/mongodb3.2.4/bin/mongod --config mongodb.conf
保存并退出:
:wq!
21 客戶端常用命令:
db.version(); # 查看 mongodb 的版本
use test; # 進(jìn)入到指定的數(shù)據(jù)中,這里是 test 數(shù)據(jù)庫
22 在 /usr/local/mongodb/mongodb3.2.4/bin/ 目錄中,鍵入如下命令,打開一個(gè) mongodb 的客戶端程序,即打開一個(gè) mongodb 的 shell 客戶端,這個(gè) shell 客戶端同時(shí)也是一個(gè) JavaScript 編輯器,即可用輸入任何的 JavaScript 腳本:
./mongo
默認(rèn)連接至 test 數(shù)據(jù)庫
來源: 博客園