linux編譯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雙機熱備份(主從復制)
主從復製作用:數據備份、讀寫分離
雙機熱備份:部署兩個節點的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存儲快要滿了,怎麼擴充存儲大小,且不刪除原來的數據
如果是你的硬碟滿了,你可以再用別的硬碟跟這個硬碟構成RAID。
如果是你的一個BSON doc快滿了,那麼說明你的存儲的數據結構是有問題的,如果可能的話,應該重新設計以使BSON doc不超過限制;如果不能的話,那麼你可以修改
源文件「mongo/src/mongo/bson/util/builder.h」裡面的
constintBSONObjMaxUserSize=16*1024*1024;
到你需要的大小,然後重新編譯mongodb。但不要改的太大,因為每一個BSON Object都是要全部讀進內存里的。
『伍』 linux下怎麼安裝64位的mongodb
方法/步驟
下載,解壓mongodb文件。把解壓的文件放在/opt/下面(存放目錄安裝自己習慣存放)
# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.4.tgz
# tar -zxvfmongodb-linux-x86_64-2.0.4.tgz
# mv mongodb-linux-x86_64-2.0.4.tgz mongodb2.0.4 (為了方便,把它從命名的更加簡潔些)
創建mongodb存放的數據文件、日子文件(mongodb_db、mongodb_logs)
# cd /
#mkdir mongodbdata
#cd mongodbdata
#mkdir mongodb_db
#mkdir mongodb_logs
進入剛才解壓的mongodb2.0.4/bin 目錄,啟動mongodb,指定輸出路徑
#cd /opt/mongodb2.0.4/bin
# ./mongod --dbpath=/mongodbdata/mongodb_db --logpath=/mongodbdata/mongodb_logs/mongodb.log --logappend&
執行完會出現「 all output going to: /mongodbdata/mongodb_logs/mongodb.log」
檢查埠是否啟動,埠為:27017
# netstat -lanp | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 560/mongod unix 2 [ ACC ] STREAM LISTENING 128435 560/mongod /tmp/mongodb-27017.sock
啟動成功。
5
第5:可以用mongodb客戶端,連接資料庫了。進入到bin目錄,執行mongo
# ./mongo
MongoDB shell version: 2.0.4connecting to: test
>use mongo_test 創建庫
>db.createCollection("test") 創建表
『陸』 linux怎麼修改mongodb的配置文件
以下是用mongo的shell打開資料庫:#創建一個庫:
use mytest
#添加一個用戶account,pwd
db.addUser("wangming","1234")
#查看當前庫中的用戶
db.system.users.find()
#連接時候通過auth命令進行連接(account,pwd)
db.auth("wangming","1234")
如果是用pymongo連接mongo,如下
#連接mongodb服務
con = MongoClient(host,port)
#選擇資料庫
db = con[dbname]
#用用戶名登陸
db.authenticate(account, pwd)
『柒』 linux 啟動mongodb
應該是配置文件里沒有指定埠信息
conf文件中增加下面這行
port = 27017 # 實例運行在27017埠(默認)
如果conf文件不會寫,其實可以不引用配置文件,使用完全默認的,直接啟動mongodb即可
mongod --fork --syslog
『捌』 mongodb 編譯報錯,我在Linux下的程序,src下面的庫都編譯過了生成了.a庫文件,但mian下面生成執行文件報錯
你可以在頭文件里設置目錄啊,直接"include "/.../.../xxx.h""文件就可以了
『玖』 linux下安裝mongodb後怎麼使用
首先到下面的工具原料中的mongodb的官網下載對應你系統的安裝包,拷貝到你的linux系統上面,如果有網路可以直接用wget下載
解壓對應的安裝包
命令如下:
tar zxf mongodb-linux-i686-2.0.2.tgz
因為mongodb不需要像別的資料庫那樣繁瑣的配置解壓後放到慣例的/usr/local目錄下面,當然你可以放到任何地方,放到/usr/local下面方便管理
命令如下:
mv mongodb-linux-i686-2.0.2/* /usr/local/mongodb
然後為mongodb創建資料庫存放的位置和日誌文件,默認是在/data/db下面,同樣為了方便就在mongodb下面建立了相應的目錄
進到mongodb下面的bin目錄下查看mongodb的幫助文檔和我們用到的啟動參數
啟動mongodb資料庫,對應的參數說明用綠色表明了
為了安全期間建議關閉28017埠防止信息外泄
做好上面的操作就可以進入mongodb的客戶端開始你的mongodb之旅了.
步驟閱讀
『拾』 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。