《非關(guān)系型數(shù)據(jù)庫中最像關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫的安裝與配置》要點(diǎn):
本文介紹了非關(guān)系型數(shù)據(jù)庫中最像關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫的安裝與配置,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的.他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲(chǔ)比擬復(fù)雜的數(shù)據(jù)類型.
MongoDB服務(wù)端可運(yùn)行在Linux、Windows或mac os x平臺(tái),支持32位和64位應(yīng)用,默認(rèn)端口為27017.保舉運(yùn)行在64位平臺(tái),因?yàn)镸ongoDB在32位模式運(yùn)行時(shí)支持的最大文件尺寸為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
創(chuàng)建配置文件,默認(rèn)是沒有模板的需要本身創(chuàng)建:添加:(啟動(dòng)參數(shù)都可以寫到配置文件中)
vim mongodb.conf
#數(shù)據(jù)文件存放位置
dbpath=/data/db
#日志文件存放位置
logpath=/usr/local/mongodb/logs/mongodb.logs
#PID的路徑
pidfilepath=/usr/local/mongodb/pid/mongodb.pid
#端口號(hào)
port=27017
#后臺(tái)運(yùn)行
fork=true
#日志輸出方式:追加
logappend=true
#打開28017網(wǎng)頁端口(若不開啟注釋掉即可)
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(若啟動(dòng)不成功查看日志)
若數(shù)據(jù)庫出現(xiàn)如不能連上,則是一個(gè)data目錄下的mongod.lock文件的問題,刪除mongod.lock,./mongod --config /usr/local/mongodb/bin/mongodb.conf --repair
######
--dbpath 數(shù)據(jù)庫路徑(數(shù)據(jù)文件)
--logpath 日志文件路徑
--master 指定為主機(jī)器
--slave 指定為從機(jī)器
--source 指定主機(jī)器的IP地址
--logappend 日志文件末尾添加
--port 啟用端口號(hào)
--fork 在后臺(tái)運(yùn)行
--only 指定只復(fù)制哪一個(gè)數(shù)據(jù)庫
--slavedelay 指從復(fù)制檢測(cè)的時(shí)間間隔
--auth 是否需要驗(yàn)證權(quán)限登錄(用戶名和暗碼)
查看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)#表明一個(gè)來自本機(jī)的連接
show dbs : 查看數(shù)據(jù)庫列表.數(shù)據(jù)庫為空默認(rèn)是不顯示的,要想顯示,必要把它插入至少一個(gè)文件
use 命令 :該命令將創(chuàng)建一個(gè)新的數(shù)據(jù)庫
dropDatabase() 辦法 :
db.dropDatabase() 命令是用來刪除一個(gè)現(xiàn)有的數(shù)據(jù)庫.它將刪除選定的數(shù)據(jù)庫.
如果還沒有選擇任何數(shù)據(jù)庫,然后它會(huì)刪除依次往下默認(rèn)的 ' mogodb' 數(shù)據(jù)庫
如果刪除指定的數(shù)據(jù)庫,使用use進(jìn)入數(shù)據(jù)庫中在執(zhí)行db.dropDatabase()
4.制作啟動(dòng)腳本
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()" #以管理員身份進(jìn)入管理后臺(tái)
;;
*)
echo "start|stop|status"
;;
esac
chmod +x /etc/init.d/mongod
啟動(dòng)開啟兩個(gè)端口,默認(rèn)服務(wù)端是27017端口號(hào),可以使用默認(rèn)端口號(hào)ip:28017進(jìn)行用戶拜訪:
6.MongoDB 備份(mongodump)與恢復(fù)(mongorestore)
備份:
mongodump -h IP --port 端口 -u 用戶名 -p 暗碼 -d 數(shù)據(jù)庫 -o 文件存在路徑
-h:MongDB所在服務(wù)器地址,例如:127.0.0.1,當(dāng)然也可以指定端口號(hào):127.0.0.1:27017
-d:必要備份的數(shù)據(jù)庫實(shí)例,例如:test
-o:備份的數(shù)據(jù)存放位置,例如:c:\data\dump,當(dāng)然該目錄必要提前建立,在備份完成后,系統(tǒng)自動(dòng)在dump目錄下建立一個(gè)test目錄,這個(gè)目錄里面存放該數(shù)據(jù)庫實(shí)例的備份數(shù)據(jù).
如果想導(dǎo)出所有數(shù)據(jù)庫,可以去掉-d.
恢復(fù):
mongorestore -h IP --port 端口 -u 用戶名 -p 暗碼 -d 數(shù)據(jù)庫 --drop 文件存在路徑
--drop的意思是,先刪除所有的記錄,然后恢復(fù).
MongoDB 的主要目標(biāo)是在鍵/值存儲(chǔ)方式(提供了高性能和高度伸縮性)和傳統(tǒng)的RDBMS 系統(tǒng)(具有豐富的功能)之間架起一座橋梁,它集兩者的優(yōu)勢(shì)于一身.根據(jù)官方網(wǎng)站的描述,Mongo 適用于以下場(chǎng)景.
● 網(wǎng)站數(shù)據(jù):Mongo 非常適合實(shí)時(shí)的插入,更新與查詢,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲(chǔ)所需的復(fù)制及高度伸縮性.
● 緩存:由于性能很高,Mongo 也適合作為信息基礎(chǔ)設(shè)施的緩存層.在系統(tǒng)重啟之后,由Mongo 搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載.
● 大尺寸、低價(jià)值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲(chǔ)一些數(shù)據(jù)時(shí)可能會(huì)比擬昂貴,在此之前,很多時(shí)候程序員往往會(huì)選擇傳統(tǒng)的文件進(jìn)行存儲(chǔ).
● 高伸縮性的場(chǎng)景:Mongo 非常適合由數(shù)十或數(shù)百臺(tái)服務(wù)器組成的數(shù)據(jù)庫,Mongo 的路線圖中已經(jīng)包括對(duì)MapReduce 引擎的內(nèi)置支持.
● 用于對(duì)象及JSON 數(shù)據(jù)的存儲(chǔ):Mongo 的BSON 數(shù)據(jù)格式非常適合文檔化格式的存儲(chǔ)及查詢.
MongoDB 的使用也會(huì)有一些限制,例如,它不適合于以下幾個(gè)地方.
● 高度事務(wù)性的系統(tǒng):例如,銀行或會(huì)計(jì)系統(tǒng).傳統(tǒng)的關(guān)系型數(shù)據(jù)庫目前還是更適用于必要大量原子性復(fù)雜事務(wù)的應(yīng)用程序.
● 傳統(tǒng)的商業(yè)智能應(yīng)用:針對(duì)特定問題的BI 數(shù)據(jù)庫會(huì)產(chǎn)生高度優(yōu)化的查詢方式.對(duì)于此類應(yīng)用,數(shù)據(jù)倉(cāng)庫可能是更合適的選擇.
● 必要SQL 的問題.
歡迎參與《非關(guān)系型數(shù)據(jù)庫中最像關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫的安裝與配置》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/10169.html