国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

mongoDB安裝與操作

zorpan / 658人閱讀

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

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

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

若啟動服務(wù)報mp錯誤,可修改binmongod.cfg,注釋最后一行mp

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

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

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

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

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

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

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

> net start MongoDB
> net stop MongoDB
二、Linux安裝數(shù)據(jù)庫
如果必要可先更新yum包管理,下面以CentOS系統(tǒng)為例:
$ yum -y update
1、安裝Mongodb
查看當前系統(tǒng)版本
$ cat /etc/redhat-release
打開 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命令直接運行(非service運行),此時若不用-f指定配置文件,mongo會使用內(nèi)在配置,dbpath也默認存放在/data/db下
$ vi /etc/mongod.conf

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

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

# 若要支持遠程連接,需將默認的127.0.0.1改為:
net:
  bindIp: 0.0.0.0

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

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

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

# 或手動指定配置文件啟動:
$ sudo mongod -f /etc/mongod.conf --fork # --fork后臺運行

# 若以權(quán)限認證運行
$ sudo mongod -f /etc/mongod.conf --auth --fork
若啟動出現(xiàn)timeout錯誤時,可查看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

或手動關(guān)閉

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

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

# 進入mongo
$ mongo

# 顯示當前數(shù)據(jù)庫,默認定位test數(shù)據(jù)庫
> db;

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

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

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

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

# 查看當前db的鏈接機器地址
> db.getMongo(); 

# 退出mongo
> exit;

2.) 集合(表)操作

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

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

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

3.) 文檔(記錄)操作

3.2版本之后,對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});  # 主鍵已存在會報錯
> db.users.insertMany([{},{}]);  # 新增多條
> db.users.save({name: "wang", age: 8});  # 主鍵已存在會替換

# 修改記錄
-------------------------------------------------------------
> db.users.updateOne({name: "wang"}, {$set: {sex: "male"}}); 
> db.users.updateMany({name: "wang"}, {$set: {sex: "male"}});
# 通用寫法(后面兩個參數(shù):第一個表示找不到則新建一條,第二個表示更新多條)
> 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});  # 默認多條
> db.users.remove({age: 8}, true);  # 可設(shè)單條
2、用戶管理

1.) 用戶類型

對于web應(yīng)用來說,最常用的用戶類型有:

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

2.) 常用用戶指令

# 顯示所有用戶
> show users;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.)普通登錄

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

# 自定義host和端口
$ mongo --host 主機 --port 端口

2.)認證登錄

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

1.)未認證數(shù)據(jù)庫

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

2.)認證數(shù)據(jù)庫

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

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

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

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

c.)認證機制

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

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/19526.html

相關(guān)文章

  • MongoDB安裝啟動(Mac 版)

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

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

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

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

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

    KnewOne 評論0 收藏0

發(fā)表評論

0條評論

zorpan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<