《非關系型數據庫中最像關系型數據庫的數據庫的安裝與配置》要點:
本文介紹了非關系型數據庫中最像關系型數據庫的數據庫的安裝與配置,希望對您有用。如果有疑問,可以聯系我們。
是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的.他支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比擬復雜的數據類型.
MongoDB服務端可運行在Linux、Windows或mac os x平臺,支持32位和64位應用,默認端口為27017.保舉運行在64位平臺,因為MongoDB在32位模式運行時支持的最大文件尺寸為2GB.[3]
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
tar zxf mongodb-linux-x86_64-3.0.6.tgz
mv mongodb-linux-x86_64-3.0.6 /usr/local/mongodb
mkdir -p /data/db
創建配置文件,默認是沒有模板的需要本身創建:添加:(啟動參數都可以寫到配置文件中)
vim mongodb.conf
#數據文件存放位置
dbpath=/data/db
#日志文件存放位置
logpath=/usr/local/mongodb/logs/mongodb.logs
#PID的路徑
pidfilepath=/usr/local/mongodb/pid/mongodb.pid
#端口號
port=27017
#后臺運行
fork=true
#日志輸出方式:追加
logappend=true
#打開28017網頁端口(若不開啟注釋掉即可)
rest=true
./mongod --config /usr/local/mongodb/bin/mongodb.conf
2017-06-11T16:20:40.499+0800 I CONTROL ** WARNING: --rest is specified without --httpinterface,
2017-06-11T16:20:40.499+0800 I CONTROL ** enabling http interface
about to fork child process, waiting until server is ready for connections.
forked process: 21179
child process started successfully, parent exiting(若啟動不成功查看日志)
若數據庫出現如不能連上,則是一個data目錄下的mongod.lock文件的問題,刪除mongod.lock,./mongod --config /usr/local/mongodb/bin/mongodb.conf --repair
######
--dbpath 數據庫路徑(數據文件)
--logpath 日志文件路徑
--master 指定為主機器
--slave 指定為從機器
--source 指定主機器的IP地址
--logappend 日志文件末尾添加
--port 啟用端口號
--fork 在后臺運行
--only 指定只復制哪一個數據庫
--slavedelay 指從復制檢測的時間間隔
--auth 是否需要驗證權限登錄(用戶名和暗碼)
查看logs
tail -f logs
2017-06-11T00:12:09.875+0800 I NETWORK [initandlisten] connection accepted from 127.0.0.1:54624 #13 (1 connection now open)
2017-06-11T00:12:09.880+0800 I ACCESS [conn13] Unauthorized not authorized on admin to execute command { getLog: "startupWarnings" }
2017-06-11T00:12:28.804+0800 I NETWORK [initandlisten] connection accepted from 10.10.2.13:63225 #14 (2 connections now open)
2017-06-11T00:12:28.805+0800 I NETWORK [initandlisten] connection accepted from 10.10.2.13:63227 #15 (3 connections now open)
2017-06-11T00:12:28.805+0800 I NETWORK [initandlisten] connection accepted from 10.10.2.13:63226 #16 (4 connections now open)
2017-06-11T00:12:28.808+0800 I NETWORK [conn14] end connection 10.10.2.13:63225 (3 connections now open)
2017-06-11T00:12:28.831+0800 I NETWORK [conn15] end connection 10.10.2.13:63227 (2 connections now open)
2017-06-11T00:12:29.717+0800 I NETWORK [conn16] end connection 10.10.2.13:63226 (1 connection now open)
(1 connection now open)#表明一個來自本機的連接
show dbs : 查看數據庫列表.數據庫為空默認是不顯示的,要想顯示,必要把它插入至少一個文件
use 命令 :該命令將創建一個新的數據庫
dropDatabase() 辦法 :
db.dropDatabase() 命令是用來刪除一個現有的數據庫.它將刪除選定的數據庫.
如果還沒有選擇任何數據庫,然后它會刪除依次往下默認的 ' mogodb' 數據庫
如果刪除指定的數據庫,使用use進入數據庫中在執行db.dropDatabase()
4.制作啟動腳本
vim /etc/init.d/mongodb
#!/bin/sh
case $1 in
start)
/usr/local/mongodb/bin/mongod --maxConns 20000 --config /usr/local/mongodb/bin/mongodb.conf
;;
stop)
/usr/local/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.shutdownServer()"
;;
status)
/usr/local/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()" #以管理員身份進入管理后臺
;;
*)
echo "start|stop|status"
;;
esac
chmod +x /etc/init.d/mongod
啟動開啟兩個端口,默認服務端是27017端口號,可以使用默認端口號ip:28017進行用戶拜訪:
6.MongoDB 備份(mongodump)與恢復(mongorestore)
備份:
mongodump -h IP --port 端口 -u 用戶名 -p 暗碼 -d 數據庫 -o 文件存在路徑
-h:MongDB所在服務器地址,例如:127.0.0.1,當然也可以指定端口號:127.0.0.1:27017
-d:必要備份的數據庫實例,例如:test
-o:備份的數據存放位置,例如:c:\data\dump,當然該目錄必要提前建立,在備份完成后,系統自動在dump目錄下建立一個test目錄,這個目錄里面存放該數據庫實例的備份數據.
如果想導出所有數據庫,可以去掉-d.
恢復:
mongorestore -h IP --port 端口 -u 用戶名 -p 暗碼 -d 數據庫 --drop 文件存在路徑
--drop的意思是,先刪除所有的記錄,然后恢復.
MongoDB 的主要目標是在鍵/值存儲方式(提供了高性能和高度伸縮性)和傳統的RDBMS 系統(具有豐富的功能)之間架起一座橋梁,它集兩者的優勢于一身.根據官方網站的描述,Mongo 適用于以下場景.
● 網站數據:Mongo 非常適合實時的插入,更新與查詢,并具備網站實時數據存儲所需的復制及高度伸縮性.
● 緩存:由于性能很高,Mongo 也適合作為信息基礎設施的緩存層.在系統重啟之后,由Mongo 搭建的持久化緩存層可以避免下層的數據源過載.
● 大尺寸、低價值的數據:使用傳統的關系型數據庫存儲一些數據時可能會比擬昂貴,在此之前,很多時候程序員往往會選擇傳統的文件進行存儲.
● 高伸縮性的場景:Mongo 非常適合由數十或數百臺服務器組成的數據庫,Mongo 的路線圖中已經包括對MapReduce 引擎的內置支持.
● 用于對象及JSON 數據的存儲:Mongo 的BSON 數據格式非常適合文檔化格式的存儲及查詢.
MongoDB 的使用也會有一些限制,例如,它不適合于以下幾個地方.
● 高度事務性的系統:例如,銀行或會計系統.傳統的關系型數據庫目前還是更適用于必要大量原子性復雜事務的應用程序.
● 傳統的商業智能應用:針對特定問題的BI 數據庫會產生高度優化的查詢方式.對于此類應用,數據倉庫可能是更合適的選擇.
● 必要SQL 的問題.
歡迎參與《非關系型數據庫中最像關系型數據庫的數據庫的安裝與配置》討論,分享您的想法,維易PHP學院為您提供專業教程。