linux centons 下載安裝MongoDB
MongoDB 提供了 linux 各發行版本 64 位的安裝包,你可以在官網下載安裝包。
下載完安裝包,並解壓 tgz(以下演示的是 64 位 Linux上的安裝) 。
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.0.tgz
tar -zxvf mongodb-linux-x86_64-3.6.0.tgz
mv mongodb-linux-x86_64-3.6.0 mongodb
MongoDB 的可執行檔案位於 bin 目錄下,可以把bin目錄絕對路徑新增到環境變數即可,具體過程不再敘述了
執行mongod命令來啟動mongdb服務
以上說明:
MongoDB的資料儲存在data目錄的db目錄下,但是這個目錄在安裝過程不會自動建立,所以你需要手動建立data目錄,並在data目錄中建立db目錄。
以下例項中我們將data目錄創建於根目錄下(/)。
注意:/data/db 是 MongoDB 預設的啟動的資料庫路徑(--dbpath)。
mkdir -p /data/db
注意:如果你的資料庫目錄不是/data/db,可以通過 --dbpath 來指定。
後臺啟動加 --fork
建立log目錄 及檔案
mkdir -p /data/db/log
touch /data/db/log/mongod.log
啟動
mongod --logpath=/data/db/log/mongod.log --logappend --fork
如果你需要進入MongoDB後臺管理,你需要先開啟mongodb裝目錄的下的bin目錄,然後執行mongo命令檔案。
MongoDB Shell是MongoDB自帶的互動式Javascript shell,用來對MongoDB進行操作和管理的互動式環境。
當你進入mongoDB後臺後,它預設會連結到 test 文件(資料庫):
cd /usr/local/mongodb/bin
./mongo
也可以新建mongodb.conf配置檔案, 通過這個配置檔案進行啟動.
vim /etc/mongodb.conf
配置檔案引數說明:
mongodb的引數說明: --dbpath 資料庫路徑(資料檔案) --logpath 日誌檔案路徑 --master 指定為主機器 --slave 指定為從機器 --source 指定主機器的IP地址 --pologSize 指定日誌檔案大小不超過64M.因為resync是非常操作量大且耗時,最好通過設定一個足夠大的oplogSize來避免resync(預設的 oplog大小是空閒磁碟大小的5%)。 --logappend 日誌檔案末尾新增 --port 啟用埠號 --fork 在後臺執行 --only 指定只複製哪一個資料庫 --slavedelay 指從複製檢測的時間間隔 --auth 是否需要驗證許可權登入(使用者名稱和密碼) 注:mongodb配置檔案裡面的引數很多,定製特定的需求,請參考官方文件
配置檔案內容:
dbpath=/data/mongodb
logpath=/data/mongodb/log/mongodb.log
logappend=true
port=27017
fork=true
##auth = true # 先關閉, 建立好使用者在啟動
通過配置檔案啟動服務:
mongod --journal -f /etc/mongodb.conf (32位系統需加引數 --journal)
通過配置檔案關閉服務:
mongod --journal --shutdown -f /etc/mongodb.conf
這時通過另外一臺電腦用pymongo連線mongodb時,報錯:timeout。
ping IP 是成功的。 telnet IP 27017 的時候,提示:27017埠連線不上。
解決辦法:
1、mongodb的配置檔案中的bind_ip 預設為127.0.0.1,預設只有本機可以連線。 此時,需要將bind_ip配置為0.0.0.0,表示接受任何IP的連線。
2、防火牆阻止了27017埠。
於是,先修改mongodb配置檔案,並重啟mongod服務
MongoDB可以限制只允許某一特定IP來訪問,只要在啟動時加一個引數bind_ip即可,或者在/etc/mongodb.conf中新增bind_ip配置,如下:
# 方法一
mongod --bind_ip 127.0.0.1,10.0.133.14
# 方法二
在/etc/mongodb.conf檔案中新增以下內容:
bind_ip = 127.0.0.1,10.0.133.14
這樣之後,MongoDB服務端只有127.0.0.1和10.0.133.14這兩個 IP 可以訪問了。