Ⅰ linux安裝MongoDB雙機熱備份(主從復制)
主從復製作用:數據備份、讀寫分離
雙機熱備份:部署兩個節點的MongoDB服務,配置一主一從,主節點添加數據,將自動備份到從節點上面,保證主機宕機後數據不丟失,同時可以繼續提供數據讀取服務(主服務掛掉,從服務將無法在進行寫入數據,只能提供數據讀取服務)
一主多從:部署多個節點的MongoDB服務,配置一主多從,數據也會自動備份到所有從節點上面,保證主機宕機後數據不丟失,同時可以根據從節點的優先順序進行選取新的主節點,繼續提供讀寫服務(主從關系跟服務設置的優先順序有直接關系 優先順序參數:priority 數字越大優先順序越高)
使用上面的方式,在不同伺服器上安裝並啟動MongoDB服務
將啟動時使用的配置文件mongodb.conf中添加下面的副文本集名稱配置,將許可權控制參數改為false(auth=false),然後將服務進行重新啟動即可(testrs是自定義的副本集名稱)
#使用此設置來配置復制副本集。指定一個副本集名稱作為參數,所有主機都必須有相同的名稱作為同一個副本集
replSet=testrs
然後啟動每個服務的客戶端查看當前節點為主節點還是從節點;
1). 如果服務部署在不同伺服器上,直接啟動/bin目錄下的mongo即可 命令:./ mongo
2). 如果服務部署在同一台伺服器上,使用不同埠及配置文件進行啟動的,啟動客戶端使用該命令 命令:./mongo 127.0.0.1:27018/
經過上面的一系列操作後,主從配置就完成了,接下來可以進行數據同步測試
第一步:在主庫上面切換到admin,然後進行添加數據(命令:db.testdb1.insert([{"name":"zs"}]))
在從庫上查詢該數據(命令:db.testdb1.find({name:"zs"})),會出現下面如圖的錯誤,因為從庫沒有查詢數據許可權,所以需要設置查詢許可權
設置從庫查詢許可權,使用命令:rs.secondaryOk()
然後在使用查詢命令進行查詢(命令:db.testdb1.find({name:"zs"}))就會看到如下圖的查詢結果:
如上圖所示,數據已經同步到從庫上面了,這樣雙機熱備份就已經實現了,上面的情況不包含許可權控制
上面的情況已經完成了MongoDB的主從復制功能,但是我們把許可權沒有開放,啟動時使用的配置中auth配置的值為false,說明沒有添加許可權,接下來就開放一下許可權配置;
首先需要主從之間通信的一個keyFile文件,根據官網提供的說明,這個keyfile是可以任意內容的,只要保證所有集群中的機器都擁有同樣的文件即可。
我這里將keyFile文件放到了MongoDB的bin目錄下了,使用openssl rand -base64 1024 > /usr/local/mongodb-master/bin/mongodb.key 命令生成;
然後將mongodb.key文件復制到每台從服務上面,在每台服務的啟動文件上添加 keyFile=/usr/local/mongodb-master/keyfile/mongodb.key 配置項 ,然後將auth屬性值改為true,這樣就完成了許可權配置
重啟主從兩個節點,這樣主機添加的數據,就會同步到從機上面了!!!
添加或刪除從節點參考文章:
https://blog.csdn.net/weixin_44839444/article/details/105666163
Ⅱ 如何在linux上進入mongodb
按照常理,把如下命令 /usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb 放在/etc/rc.local文件中就可以實現開機自啟動了,第一次重啟機器發現mongodb順利啟動了,再次重啟機器後,通過ps...
Ⅲ linux下怎麼查看mongodb
要先建立好MongoDB 存放數據文件和日誌文件的目錄,此處建立在/data下:
[root@localhost etc]# cd /data/
[root@localhost data]# ls
mongodb_data mongodb_log
在MongoDB安裝目錄下的bin下使用mongod啟動MongoDB,
./mongod --dbpath=/data/mongodb_data/ --logpath=/data/mongodb_log/mongodb.log --logappend&
等待啟動成功後,可查看是否啟動成功了,默認埠號是27017,當然在啟動時也可以指定未使用的其它埠。
先通過查看埠號看MongoDB是否啟動了。
[root@localhost data]# netstat -lanp | grep "27017"
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1573/mongod
unix 2 [ ACC ] STREAM LISTENING 5874 1573/mongod /tmp/mongodb-27017.sock
可以看到,已啟動成功,現在使用mongo客戶端訪問一下該資料庫。
[root@localhost bin]# cd /usr/local/mongodb/bin/
[root@localhost bin]# ./mongo
MongoDB shell version: 1.8.1
connecting to: test
>
到這一步說明已經安裝成功了。
5. 額外工作。
注意,上述我們啟動MongoDB都是手動使用mongod來啟動,這樣關閉計算機後,下次再進來它又沒啟動了,所以還得手動啟動,因此,為避免這種繁瑣的工作,可以把mongod放到服務自啟動項中,這樣計算機一開啟mongod服務也就啟動了。
編輯/etc/rc.local,加入下述代碼然後再保存即可。
#add mongonDB service
rm -rf /data/mongodb_data/* && /usr/local/mongodb/bin/mongod --dbpath=/data/mongodb_data/ --logpath=/data/mongodb_log/mongodb.log --logappend&
我們重啟計算機再看MongoDB是否啟動,重啟後可以直接使用 mongo命令登錄,最終發現是可以成功的。
另外,我們使用mongo命令登錄 MongoDB還要轉到mongo命令所在目錄再執行./mongo,這樣是不是有些麻煩?因此,我們可以簡化這點,將該命令文件到/usr/bin下,這樣就可以在任何目錄下使用mongo命令了。
[root@localhost bin]# ls
bsonmp dbbak mongo mongod mongomp mongoexport mongofiles mongoimport mongorestore mongos mongosniff mongostat
[root@localhost bin]# cp mongo /usr/bin/
轉到任一目錄試下mongo命令:
[root@localhost bin]# cd /
[root@localhost /]# mongo
MongoDB shell version: 1.8.1
connecting to: test
>
可以看到登錄成功了,說明我們可以像使用ls命令一樣使用mongo命令了。
Ⅳ 如何連接linux下的mongodb
方法/步驟
想在shell中連接資料庫,首先要在連接數據的機器上安裝mongodb的客戶端才可以。客戶端的安裝在這里不再重復,自己網路或者google一下吧。連接mongodb的命令如下:
/home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888
這個是我的資料庫配置,沒有設置用戶名密碼。所以直接通過該命令就可以連接。
連結後會有一個默認連接的資料庫。
mongodb常用命令:
查看資料庫命令:
show dbs;
查看集合命令:
show collections;
切換資料庫:
use databaseName;
查詢數據:
db.集合名.find()
插入數據:
db.集合名.insert({name:'test',age:1});
刪除:
db.test.remove();
如果我想通過shell腳本實現一個日誌分析並入庫的操作怎麼辦呢?簡單,如下操作就可以:
sql="db.test.insert({name:'test',age:1});"//定義執行的sqlecho "$sql"|/home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888/test --shell
注意,echo命令中的格式必須這樣寫,管線命令後面的是是資料庫安裝地址 然後是ip:埠號,斜線後是資料庫名稱,--shell表示通過shell交互
Ⅳ 如何在arch linux系統中安裝MongoDB
由於工作需要在本地安裝mongodb用作調試,在安裝過程中遇到了問題,記錄一下。
首先看看安裝成功的mongodb吧:
我的系統是Manjaro,基於archlinux的系統。由於MongoDB修改了軟體授權協議,所以在archlinux的官方源中已經刪除了MongoDB,在archlinux的wiki中建議安裝AUR中的mongodb-bin,或者自己編譯(需要180G的空餘的磁碟空間)。腦闊疼,我沒有配置AUR的源,自己編譯的話,我這老爺機誰知道要編譯多久,所以最後我選擇了使用 MongoDB官網 提供的軟體包。
下面是安裝過程:
當然也可以選擇配置AUR源來安裝,但是我懶得配置,而且自己一般也不會用到AUR,所以就只介紹這一種方法了。
啟動的話可以選擇使用下面的命令來後台執行
本文最先發布於: SavingUnhappy
Ⅵ linux下怎麼安裝mongodb
下載完安裝包,並解壓 tgz(以下演示的是 64 位 Linux上的安裝) 。
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz # 下載
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz # 解壓
mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb # 將解壓包拷貝到指定目錄
MongoDB 的可執行文件位於 bin 目錄下,所以可以將其添加到 PATH 路徑中:
export PATH=<mongodb-install-directory>/bin:$PATH
<mongodb-install-directory> 為你 MongoDB 的安裝路徑。如本文的 /usr/local/mongodb 。
創建資料庫目錄
MongoDB的數據存儲在data目錄的db目錄下,但是這個目錄在安裝過程不會自動創建,所以你需要手動創建data目錄,並在data目錄中創建db目錄。
以下實例中我們將data目錄創建於根目錄下(/)。
注意:/data/db 是 MongoDB 默認的啟動的資料庫路徑(--dbpath)。
mkdir -p /data/db
命令行中運行 MongoDB 服務
你可以再命令行中執行mongo安裝目錄中的bin目錄執行mongod命令來啟動mongdb服務。
注意:如果你的資料庫目錄不是/data/db,可以通過 --dbpath 來指定。
$ ./mongod
2015-09-25T16:39:50.549+0800 I JOURNAL [initandlisten] journal dir=/data/db/journal
2015-09-25T16:39:50.550+0800 I JOURNAL [initandlisten] recover : no journal files present, no recovery needed
2015-09-25T16:39:50.869+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 3.16
2015-09-25T16:39:51.206+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 3.52
2015-09-25T16:39:52.775+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 7.7
MongoDB後台管理 Shell
如果你需要進入MongoDB後台管理,你需要先打開mongodb裝目錄的下的bin目錄,然後執行mongo命令文件。
MongoDB Shell是MongoDB自帶的互動式Javascript shell,用來對MongoDB進行操作和管理的互動式環境。
當你進入mongoDB後台後,它默認會鏈接到 test 文檔(資料庫):
$ cd /usr/local/mongodb/bin
$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
Welcome to the MongoDB shell.
……
由於它是一個JavaScript shell,您可以運行一些簡單的算術運算:
> 2+2
4
> 3+6
9
現在讓我們插入一些簡單的數據,並對插入的數據進行檢索:
> db.runoob.insert({x:10})
WriteResult({ "nInserted" : 1 })
> db.runoob.find()
{ "_id" : ObjectId("5604ff74a274a611b0c990aa"), "x" : 10 }
>
第一個命令將數字 10 插入到 runoob 集合的 x 欄位中。
MongoDb web 用戶界面
MongoDB 提供了簡單的 HTTP 用戶界面。 如果你想啟用該功能,需要在啟動的時候指定參數 --rest 。
$ ./mongod --dbpath=/data/db --rest
MongoDB 的 Web 界面訪問埠比服務的埠多1000。
如果你的MongoDB運行埠使用默認的27017,你可以在埠號為28017訪問web用戶界面,即地址為:http://localhost:28017。
Ⅶ linux進入mongodb怎麼鏈接mongodb
進入到你的MongoDB安裝目錄,啟動的命令是:./mongod,客戶端連接的命令是:./mongo就可以了,希望是你想要的答案,也可以關注PHP程序員,雷雪松的個人博客,有很多MongoDB的介紹。
Ⅷ 如何在linux操作mongodb
首先到下面的工具原料中的mongodb的官...
1
解壓對應的安裝包 命令如下: ...
2
因為mongodb不需要像別的資料庫那樣繁...
3
然後為mongodb創建資料庫存放的位置和...
4
進到mongodb下面的bin目錄下查看mongod...
5
啟動mongodb資料庫,對應的參數說明用綠...
6
為了安全期間建議關閉28017埠防止信...
7
做好上面的操作就可以進入mongodb的客..
Ⅸ linux mongodb 怎麼使用
1.連接mongodb
mongo/bin目錄下執行
./mongo
2.查看資料庫
show dbs
3.查看當前所在資料庫
db
4.創建資料庫
use openfire (臨時創建 如果不做操作 則離開後被系統刪除)
5.在當前資料庫刪除當前資料庫
db.dropDatabase()
6.查看當前庫的所有用戶
show users
7.查看集合(或者叫表)
show collections
8.創建集合
db.createCollection(「mycollection」)
9.創建集合並制定集合的屬性
db.createCollection(「mycol」, { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )
欄位
類型
描述
capped Boolean (可選)如果為true,則啟用封頂集合。封頂集合是固定大小的集合,會自動覆蓋最早的條目,當它達到其最大大小。如果指定true,則需要也指定尺寸參數。
autoIndexID Boolean (可選)如果為true,自動創建索引_id欄位的默認值是false。
size number (可選)指定最大大小位元組封頂集合。如果封頂如果是 true,那麼你還需要指定這個欄位。
max number (可選)指定封頂集合允許在文件的最大數量。
10.另一種創建集合
(當插入一條數據時,不存在mongodb會幫我們創建,和創建資料庫同理)
db.MySecondCollection.insert({「name」 : 「ming」})
11.刪除當前庫的一個集合
db.CollectionName.drop()
12.插入一條數據
db.MyFirstCollection.insert({「_id」:」3」,」title」:」mongotest」,」description」:」this is test」})
注意:插入的都是JSON形式的,所以一定要用{},否則會報錯:
Sat Mar 19 14:22:39.160 SyntaxError: Unexpected token :
13.插入一條_id存在的數據
db.MyFirstCollection.insert({「_id」:」3」,」title」:」mm」})
輸出:E11000 plicate key error index: openfire.MyFirstCollection.$_id_ p key: { : 「3」 }
解釋:_id即是mongodb的默認主鍵,默認自動生成,我們可以直接設置以達到我們想要的目的
Ⅹ linux客戶端如何啟動mongodb
按照常理,把如下命令
/usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb
放在/etc/rc.local文件中就可以實現開機自啟動了,第一次重啟機器發現mongodb順利啟動了,再次重啟機器後,通過ps沒有查看到相應mongod進程,也就是啟動失敗了。原因是由於重啟機器,導致非正常停止mongod服務,mongod.lock中還記錄了上次運行的進程號,為了數據的安全需要執行
/usr/local/mongodb/bin/mongod –repair,
當然如果直接把mongod.lock文件刪除也可以重新啟動了,例如:
/usr/local/mongodb/bin/mongod --repair
/usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb
或
rm -rf /data/db/mongod.lock
/usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb
注意上述啟動Mongodb都是沒有增加journal參數,如果帶了此參數就不會那麼麻煩了,例如
/usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb --journal就可以了,就算是非正常重啟機器,mongodb也會根據日誌去修復資料庫的。
另外,如果mongodb的數據目錄是通過mount的NFS文件夾,自啟動好像有問題的。