成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

mongoDB安裝與操作

zorpan / 659人閱讀

摘要:一下安裝數(shù)據(jù)庫(kù)進(jìn)入官網(wǎng),選擇相應(yīng)的版本下載,安裝時(shí)默認(rèn)勾選安裝服務(wù)和修改一些數(shù)據(jù)庫(kù)配置,如已有數(shù)據(jù)庫(kù)連接工具,可取消默認(rèn)勾選的安裝。

一、Win下安裝數(shù)據(jù)庫(kù)

進(jìn)入mongo官網(wǎng),選擇相應(yīng)的msi版本下載,安裝時(shí)默認(rèn)勾選安裝MongoD服務(wù)和修改一些數(shù)據(jù)庫(kù)配置,如已有數(shù)據(jù)庫(kù)連接工具Robo 3T,可取消默認(rèn)勾選的compass安裝。

若啟動(dòng)服務(wù)報(bào)mp錯(cuò)誤,可修改binmongod.cfg,注釋最后一行mp

安裝后如果需要修改配置/服務(wù)或手動(dòng)運(yùn)行,可以參考如下:

1、命令行運(yùn)行
可以通過(guò)命令行運(yùn)行,也可以通過(guò)指定配置運(yùn)行,以安裝在D:MongoDB為例
# 單行配置
> D:MongoDBinmongod.exe --dbpath D:MongoDBdata --logappend

# 指定配置文件
> D:MongoDBinmongod.exe --config "D:MongoDBinmongod.cfg"
2、服務(wù)方式運(yùn)行
通過(guò)安裝和運(yùn)行服務(wù),可以讓mongoDB以后臺(tái)靜默的方式運(yùn)行。

安裝/移除服務(wù):

# 添加到windows服務(wù)
> D:MongoDBinmongod.exe --config "D:MongoDBinmongod.cfg" --install

# 移除服務(wù)(以管理員身份運(yùn)行cmd)
> D:MongoDBinmongod.exe --remove

啟動(dòng)/關(guān)閉服務(wù):

> net start MongoDB
> net stop MongoDB
二、Linux安裝數(shù)據(jù)庫(kù)
如果必要可先更新yum包管理,下面以CentOS系統(tǒng)為例:
$ yum -y update
1、安裝Mongodb
查看當(dāng)前系統(tǒng)版本
$ cat /etc/redhat-release
打開(kāi) https://repo.mongodb.org/yum/... ,選擇適合自己系統(tǒng)的mongo版本,然后編輯Mongodb安裝源,下面以3.6為例:
$ sudo vi /etc/yum.repos.d/mongodb-org-3.6.repo
編輯內(nèi)容(根據(jù)自己的mongo版本替換下面的3.6字樣):
[mongodb-org-3.6]
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
2、修改Mongo配置
mongo配置文件路徑:/etc/mongod.conf,但如果用mongod命令直接運(yùn)行(非service運(yùn)行),此時(shí)若不用-f指定配置文件,mongo會(huì)使用內(nèi)在配置,dbpath也默認(rèn)存放在/data/db下
$ vi /etc/mongod.conf

#------------------------------------------------------------------------

# 可修改數(shù)據(jù)庫(kù)存放位置
storage:
  dbPath: /var/lib/mongodb

# 若要支持遠(yuǎn)程連接,需將默認(rèn)的127.0.0.1改為:
net:
  bindIp: 0.0.0.0

# 若需數(shù)據(jù)庫(kù)權(quán)限認(rèn)證,開(kāi)啟下面配置:
security:
    authorization: enabled

若遠(yuǎn)程連接工具Robo 3T還是不能連接,需在防火墻增加端口:

$ sudo /sbin/iptables -I INPUT -p tcp --dport 27017 -j ACCEPT
三、Linux運(yùn)行數(shù)據(jù)庫(kù)
1、啟動(dòng)
$ service mongod start  # 自動(dòng)使用配置/etc/mongod.conf

# 或手動(dòng)指定配置文件啟動(dòng):
$ sudo mongod -f /etc/mongod.conf --fork # --fork后臺(tái)運(yùn)行

# 若以權(quán)限認(rèn)證運(yùn)行
$ sudo mongod -f /etc/mongod.conf --auth --fork
若啟動(dòng)出現(xiàn)timeout錯(cuò)誤時(shí),可查看service里的pid與config里的pid是否相同,不一致則修改:
$ sudo vi /usr/lib/systemd/system/mongod.service # 修改pid
$ systemctl daemon-reload # 重新加載service服務(wù)
$ service mongod start
2、重啟
$ service mongod restart
3、關(guān)閉
$ service mongod stop

或手動(dòng)關(guān)閉

$ sudo mongod -f /etc/mongod.conf --shutdown
4、隨系統(tǒng)啟動(dòng)
默認(rèn)安裝后即隨機(jī)啟動(dòng),無(wú)須設(shè)置
$ chkconfig mongod on
四、操作數(shù)據(jù)庫(kù)
1、數(shù)據(jù)管理

1.) 數(shù)據(jù)庫(kù)操作

# 進(jìn)入mongo
$ mongo

# 顯示當(dāng)前數(shù)據(jù)庫(kù),默認(rèn)定位test數(shù)據(jù)庫(kù)
> db;

# 顯示所有數(shù)據(jù)庫(kù)
> show dbs;

# 切換/創(chuàng)建數(shù)據(jù)庫(kù)
> use xxx;

# 刪除數(shù)據(jù)庫(kù)
> db.dropDatabase();

# 修復(fù)數(shù)據(jù)庫(kù)
> db.repairDatabase();

# 查看當(dāng)前db的鏈接機(jī)器地址
> db.getMongo(); 

# 退出mongo
> exit;

2.) 集合(表)操作

# 顯示所有集合名
> db.getCollectionNames();

# 創(chuàng)建集合
> db.createCollection("users", {size: 1024, max: 1000}); # 最大1M,1000條

# 刪除集合
> db.users.drop();

3.) 文檔(記錄)操作

3.2版本之后,對(duì)CRUD操作分別新增了單條和批量指令
# 查詢記錄
-------------------------------------------------------------
> db.users.findOne();  # 查詢集合里第一條
> db.users.find();  # 查詢集合里全部

# 根據(jù)條件查詢
> db.users.findOne({age: 8});
> db.users.find({age: 8}); 

# 新增記錄
-------------------------------------------------------------
> db.users.insertOne({name: "wang", age: 8});  # 主鍵已存在會(huì)報(bào)錯(cuò)
> db.users.insertMany([{},{}]);  # 新增多條
> db.users.save({name: "wang", age: 8});  # 主鍵已存在會(huì)替換

# 修改記錄
-------------------------------------------------------------
> db.users.updateOne({name: "wang"}, {$set: {sex: "male"}}); 
> db.users.updateMany({name: "wang"}, {$set: {sex: "male"}});
# 通用寫法(后面兩個(gè)參數(shù):第一個(gè)表示找不到則新建一條,第二個(gè)表示更新多條)
> db.users.update({name: "wang"}, {$set: {sex: "male"}}, false, true);

# 刪除記錄
-------------------------------------------------------------
> db.users.deleteOne({age: 8}); 
> db.users.deleteMany({age: 8}); 
# 通用寫法
> db.users.remove({age: 8});  # 默認(rèn)多條
> db.users.remove({age: 8}, true);  # 可設(shè)單條
2、用戶管理

1.) 用戶類型

對(duì)于web應(yīng)用來(lái)說(shuō),最常用的用戶類型有:

用戶類型 角色 管理用戶 讀寫數(shù)據(jù) 身份授權(quán)庫(kù)
數(shù)據(jù)庫(kù)用戶 read/readWrite 無(wú) 指定庫(kù) 指定庫(kù)/admin
所有數(shù)據(jù)庫(kù)讀寫權(quán)限 readWriteAnyDatabase 無(wú) 任意庫(kù) admin
用戶管理員 userAdmin 指定庫(kù) 無(wú) 指定庫(kù)/admin
所有數(shù)據(jù)庫(kù)管理員 userAdminAnyDatabase 任意庫(kù) 無(wú) admin
超級(jí)賬號(hào) root 任意庫(kù) 任意庫(kù) admin

2.) 常用用戶指令

# 顯示所有用戶
> show users;

# 新建用戶
> db.createUser({user:"用戶名",pwd:"密碼",roles:[{role:"角色",db:"庫(kù)"}]});

# 若當(dāng)前數(shù)據(jù)庫(kù)與目標(biāo)庫(kù)相同,可簡(jiǎn)寫:
> db.createUser({user:"用戶名",pwd:"密碼",roles:["角色"]});

# 追加用戶權(quán)限
> db.grantRolesToUser("用戶名",[{role:"角色",db:"庫(kù)"}]);

# 修改用戶權(quán)限
> db.updateUser("用戶名",{roles:["角色1","角色2"]});

# 更新密碼
> db.changeUserPassword("用戶名","密碼");
# 或
> db.updateUser("用戶名",{pwd:"密碼"});

# 刪除用戶
> db.dropUser("用戶名");

3.) 管理用戶創(chuàng)建

root、*AnyDatabase角色用戶、cluster集群等用戶只能在admin庫(kù)下創(chuàng)建
> use admin;

# 超級(jí)管理員
> db.createUser({user:"root",pwd:"密碼",roles:["root"]});

# user管理員賬號(hào)
> db.createUser({user:"用戶名",pwd:"密碼",roles:["userAdminAnyDatabase"]});

# 任意庫(kù)讀寫賬號(hào)
> db.createUser({user:"用戶名",pwd:"密碼",roles:["readWriteAnyDatabase"]};

# 普通讀寫用戶(可以在admin庫(kù)下創(chuàng)建,但認(rèn)證時(shí)也需在admin庫(kù))
> db.createUser({user:"用戶名",pwd:"密碼",roles:[{role:"readWrite",db:"業(yè)務(wù)庫(kù)"}]});

4.) 普通用戶創(chuàng)建

mongoDB的權(quán)限是跟隨庫(kù)的,用戶在哪個(gè)庫(kù)下創(chuàng)建的,則需在哪個(gè)庫(kù)進(jìn)行auth認(rèn)證,如果認(rèn)證庫(kù)和讀寫目標(biāo)庫(kù)一致,則連接時(shí)authSource參數(shù)可省略(見(jiàn)第四節(jié):連接數(shù)據(jù)庫(kù))
> use xxx;
> db.createUser({user:"用戶名",pwd:"密碼",roles:["readWrite"]);
如果提示SCRAM-SHA-256 requires undigested passwords錯(cuò)誤,需要加mechanisms,如下:
> db.createUser({user:"用戶名",pwd:"密碼",roles:["readWrite"],mechanisms: ["SCRAM-SHA-1"]});
五、連接數(shù)據(jù)庫(kù)
1、shell方式連接:

1.)普通登錄

如果mongoDB未開(kāi)啟認(rèn)證模式,所有用戶的權(quán)限與root一樣,任意操作。
$ mongo

# 自定義host和端口
$ mongo --host 主機(jī) --port 端口

2.)認(rèn)證登錄

mongoDB的權(quán)限是跟隨庫(kù)的,普通用戶在哪個(gè)庫(kù)新建授權(quán),就需要在哪個(gè)庫(kù)進(jìn)行auth驗(yàn)證
$ mongo --host 主機(jī) --port 端口
> use 認(rèn)證數(shù)據(jù)庫(kù);
> db.auth("用戶名", "密碼");
也可以登錄時(shí)一并授權(quán)認(rèn)證:
$ mongo --host 主機(jī) --port 端口 -u "用戶名" -p "密碼" --authenticationDatabase "身份認(rèn)證所用庫(kù)"
root和*AnyDatabase角色的權(quán)限只能在admin數(shù)據(jù)庫(kù)里認(rèn)證,如:
$ mongo --host 主機(jī) --port 端口 -u root -p 123456 --authenticationDatabase admin
2、URI方式連接:

1.)未認(rèn)證數(shù)據(jù)庫(kù)

mongo://主機(jī):端口/數(shù)據(jù)庫(kù)名

2.)認(rèn)證數(shù)據(jù)庫(kù)

a.)普通數(shù)據(jù)用戶

若當(dāng)前用戶認(rèn)證的數(shù)據(jù)庫(kù)與要操作的數(shù)據(jù)庫(kù)相同,連接方式如下:
mongo://用戶名:密碼@主機(jī):端口/數(shù)據(jù)庫(kù)名
若不同,則需添加authSource,例如:在admin庫(kù)里認(rèn)證了,角色db卻是xxx
mongo://用戶名:密碼@主機(jī):端口/xxx?authSource=admin

b.)root和所有數(shù)據(jù)庫(kù)用戶

若連接用戶是root、*AnyDatabase角色、cluster集群的認(rèn)證庫(kù)都是admin
mongo://用戶名:密碼@主機(jī):端口/數(shù)據(jù)庫(kù)名?authSource=admin

c.)認(rèn)證機(jī)制

mongoDB支持多種認(rèn)證機(jī)制, 常用的有"MONGODB-CR" 和 "SCRAM-SHA-1" 兩種,官方推薦 "SCRAM-SHA-1",此時(shí)不需要帶在URI里,但如果是"MONGODB-CR"類型需加添加在URI上。
mongo://用戶名:密碼@主機(jī):端口/數(shù)據(jù)庫(kù)?authMechanism=認(rèn)證機(jī)制&authSource=身份認(rèn)證所用庫(kù)
六、備份/恢復(fù)數(shù)據(jù)庫(kù)
1、備份數(shù)據(jù)庫(kù):
也適用于copy遠(yuǎn)程數(shù)據(jù)庫(kù)到本地
$ mongodump --host 主機(jī) --port 端口 --username 用戶 --password "密碼" --authenticationDatabase "授權(quán)庫(kù)" --db 目標(biāo)數(shù)據(jù)庫(kù) --out 存放目錄
2、恢復(fù)數(shù)據(jù)庫(kù):
若本地?cái)?shù)據(jù)庫(kù)以非認(rèn)證模式運(yùn)行,恢復(fù)到本地可簡(jiǎn)單的如下:
$ mongorestore 存放目錄
恢復(fù)遠(yuǎn)程認(rèn)證數(shù)據(jù)庫(kù):
$ mongorestore --host 主機(jī) --port 端口 --username 用戶 --password "密碼" --authenticationDatabase "授權(quán)庫(kù)" 存放目錄

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19526.html

相關(guān)文章

  • MongoDB安裝啟動(dòng)(Mac 版)

    摘要:本次講述安裝的當(dāng)然是免費(fèi)的社區(qū)版。兩種安裝方法手動(dòng)安裝,需要下載安裝包解壓編譯比較繁瑣使用系統(tǒng)的安裝,是系統(tǒng)上的包管理工具,類似的。如文章出現(xiàn)有錯(cuò)誤,麻煩指出或有相關(guān)知識(shí)點(diǎn)討論也十分歡迎 Mac上裝MongoDB的官網(wǎng)教程:https://docs.mongodb.com/manu...,英文不錯(cuò)的可以直接看,教程也很清晰。 兩種版本 MongoDB有兩種版本: 1.(Enterpri...

    keithyau 評(píng)論0 收藏0
  • Node.js學(xué)習(xí)之路01——不同操作系統(tǒng)下Node.js環(huán)境搭建

    摘要:基本介紹這是一個(gè)基本的環(huán)境搭建不同的操作系統(tǒng)可以選擇不同的安裝方式如果不需要太多的安裝步驟就直接在官網(wǎng)下載最新版安裝包進(jìn)行安裝即可環(huán)境配置必須安裝的軟件更改源與更新系統(tǒng)首先備份下載的源配置文件運(yùn)行生成緩存更新系統(tǒng)安裝使用安裝命 基本介紹 這是一個(gè)基本的Node.js環(huán)境搭建,不同的操作系統(tǒng)可以選擇不同的安裝方式 如果不需要太多的安裝步驟,就直接在Node.js官網(wǎng)下載最新版安裝包進(jìn)行...

    meteor199 評(píng)論0 收藏0
  • 手把手教你 MongoDB安裝詳細(xì)使用(一)

    摘要:如刪除集合下全部文檔刪除等于搜云庫(kù)的全部文檔搜云庫(kù)關(guān)注公眾號(hào),搜云庫(kù),專注于開(kāi)發(fā)技術(shù)的研究與知識(shí)分享刪除等于的一個(gè)文檔查詢文檔查詢文檔使用方法。 一、什么是MongoDB ? MongoDB 是由C++語(yǔ)言編寫的,是一個(gè)基于分布式文件存儲(chǔ)的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng)。 在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。 MongoDB 旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。 Mo...

    KnewOne 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<