(1)MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。由C++語(yǔ)言編寫(xiě)。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到岳池網(wǎng)站設(shè)計(jì)與岳池網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋岳池地區(qū)。(2)MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類(lèi)似json的bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類(lèi)型。Mongo大的特點(diǎn)是它支持的查詢語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類(lèi)似于面向?qū)ο蟮牟樵冋Z(yǔ)言,幾乎可以實(shí)現(xiàn)類(lèi)似關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。
(3)特點(diǎn):
面向集合存儲(chǔ),易存儲(chǔ)對(duì)象類(lèi)型的數(shù)據(jù);
模式自由、支持查詢、支持動(dòng)態(tài)查詢;
支持完全索引,包含內(nèi)部對(duì)象;
支持復(fù)制和故障恢復(fù);
使用高效的二進(jìn)制數(shù)據(jù)存儲(chǔ),包括大型對(duì)象(如視頻等);
自動(dòng)處理碎片,以支持云計(jì)算層次的擴(kuò)展性;
支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語(yǔ)言;
文件存儲(chǔ)格式為BSON(一種JSON的擴(kuò)展);
可通過(guò)網(wǎng)絡(luò)訪問(wèn)。
[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
yum install mongodb-org -y
vim /etc/mongod.conf
bindIp: 0.0.0.0 //監(jiān)聽(tīng)地址
port: 27017 //監(jiān)聽(tīng)端口
systemctl start mongod.service
netstat -natp | grep 27017
cp -p /etc/mongod.conf /etc/mongod2.conf
vim /etc/mongod2.conf
//修改以下代碼:
path: /data/mongodb/mongod2.log //日志文件目錄
dbPath: /data/mongodb/mongo //數(shù)據(jù)存儲(chǔ)目錄
port: 27018 //服務(wù)器端口
mkdir -p /data/mongodb/
cd /data/mongodb/
mkdir mongo
touch mongod2.log
chmod 777 mongod2.log
mongod -f /etc/mongod2.conf
mongo --port 27018 //指定實(shí)例的端口
netstat -ntap
(1)文檔 : 相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)的 行 (多個(gè)文檔組成集合)
(2)集合 : 相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)的 表 (多個(gè)集合組成數(shù)據(jù)庫(kù))
(3)數(shù)據(jù)庫(kù)名特殊作用:
admin: 將用戶添加到這個(gè)庫(kù),這個(gè)用戶繼承數(shù)據(jù)庫(kù)所有權(quán)限;
local : 這個(gè)庫(kù)永遠(yuǎn)不被復(fù)制,可以存儲(chǔ)限于本地單臺(tái)服務(wù)器的任意集合;
config : 當(dāng)Mongo用于分片設(shè)置時(shí),這個(gè)庫(kù)在內(nèi)部使用,保存分片的相關(guān)信息。
mongo //進(jìn)入數(shù)據(jù)庫(kù)
> db.version() //查看版本
> show dbs; // 查看數(shù)據(jù)庫(kù)
> db.getMongo() //查看當(dāng)前數(shù)據(jù)庫(kù)機(jī)器的連接地址
> db.集合名.help //顯示集合操作命令
> show users //顯示用戶
> use school; //打開(kāi)school數(shù)據(jù)庫(kù), 不存在會(huì)創(chuàng)建,不建立集合又會(huì)刪除
> db.createCollection('info') //創(chuàng)建集合
> db.info.insert({"id":1,"name":"zhangsan","hobby":["game","talk"]}) //添加數(shù)據(jù)
> db.info.find() //查看info集合中所有文檔
> show collections //查看數(shù)據(jù)庫(kù)中所有集合
> db.info.update({"id":10},{$set:{"name":"tom"}}) //更改數(shù)據(jù)
> db.info.remove({"id":2}) //移除info集合中的id2的數(shù)據(jù)
> db.info.drop() //刪除info集合
> db.dropDatabase() //刪除數(shù)據(jù)庫(kù) 先use到要?jiǎng)h的數(shù)據(jù)庫(kù)里在刪
> db.info.count() //統(tǒng)計(jì)有多少條數(shù)據(jù)
String: 字符串,最常用,必須是utf-8
Boolean:布爾值,true 或者false
Integer:整數(shù)
Double:浮點(diǎn)數(shù)
Arrays:數(shù)組或者列表,多個(gè)值存儲(chǔ)到一個(gè)鍵
Object:用于嵌入文檔,即一個(gè)值為一個(gè)文檔
Null:存儲(chǔ)null值
Binary Data : 二進(jìn)制數(shù)據(jù),用于存儲(chǔ)二進(jìn)制數(shù)據(jù)
Date:存儲(chǔ)當(dāng)前日期或時(shí)間unix時(shí)間格式
> a=db.info.findOne({"id":1}) //查找指定記錄并賦予別名a
> typeof(a.id) //查看屬性類(lèi)型
導(dǎo)出:mongoexport
導(dǎo)入:mongoimport
常見(jiàn)選項(xiàng):
-d 數(shù)據(jù)庫(kù)
-c 集合
-o 目錄文件.json結(jié)尾
-q 導(dǎo)出數(shù)據(jù)過(guò)濾條件
-f 導(dǎo)出哪些列
for(var i=1;i<=100;i++)db.info.insert({"id":i,"name":"jack"+i}) //循環(huán)寫(xiě)入100條數(shù)據(jù)
mongoexport -d school -c info -o /opt/info.json //導(dǎo)出
mongoimport -d school -c info1 --file /opt/info.json //導(dǎo)入到info1集合
mongoexport -d school -c info1 -q '{"id":{"$eq":10}}' -o /opt/top10.json //條件導(dǎo)出指定第10行
① 備份:mongodump
② 恢復(fù):mongorestore
③ 選項(xiàng):
-h 指定Mongodb所在服務(wù)器的地址也可以指定端口(例:-h 127.0.0.1:27017)
-d :需要備份的數(shù)據(jù)庫(kù);
-o :備份數(shù)據(jù)存放的目錄 該目錄需提前創(chuàng)建
mkdir /backup //創(chuàng)建存放目錄
mongodump -d school -o /backup/ //備份school數(shù)據(jù)庫(kù)
mongorestore -d school1 --dir=/backup/school //恢復(fù)到school1數(shù)據(jù)庫(kù)
④ 復(fù)制數(shù)據(jù)庫(kù):
db.copyDatabase("school","school2") //復(fù)制數(shù)據(jù)庫(kù)school 到school2中
⑤ 克隆數(shù)據(jù)庫(kù):
把數(shù)據(jù)庫(kù)school的info集合 克隆到實(shí)例2
先進(jìn)入實(shí)例2的MongoDB
mongo --port 27018
db.runCommand({"cloneCollection":"school.info","from":"192.168.126.130:27017"})
3、安全管理:
創(chuàng)建管理用戶;
啟動(dòng)是必須指定 auth=true;
可以將用戶分配角色;
內(nèi)置數(shù)據(jù)庫(kù)用戶角色: read 、 readWrite;
數(shù)據(jù)庫(kù)管理員角色: dbAmin 、 dbOwner 、 userAdmin;
超級(jí)用戶角色 :root
vim /etc/mongod.conf
auth=true //添加
mongo
> use admin
> db.createUser({"aaa":"root","pwd":"123","roles":["root"]})
//創(chuàng)建用戶aaa 密碼123123 分配到root角色
> db.auth("root","123123") //驗(yàn)證用戶
4、進(jìn)程管理:
終止正在運(yùn)行的進(jìn)程: db.killOp(opid值)
查看當(dāng)前正在運(yùn)行的進(jìn)程: db.currentOp()
> db.currentOp() //查看
> db.killOp(4872) //終止4872進(jìn)程
5、MongoDB 監(jiān)控:
MongoDB提供一些內(nèi)置工具可以監(jiān)測(cè)數(shù)據(jù)庫(kù)的狀態(tài)信息
查看數(shù)據(jù)庫(kù)實(shí)例的狀態(tài)信息: db.serverStatus()
查看數(shù)據(jù)庫(kù)的統(tǒng)計(jì)信息: db.stats()
此外也可以通過(guò)web界面查看系統(tǒng)監(jiān)控信息需要在配置文件中加入
vim /etc/mongod.conf
httpinterface=true
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。