MongoDB之命令行命令


xshell 登錄到 MongoDB電腦

進入到目錄下

[root@node127 console]# cd mongodb_common/
[root@node127 mongodb_common]# ls
bin
GNU-AGPL-3.0 journal LICENSE-Community.txt mongodb_common-1.3.4.0.9.1-linux.rhel.7.amd64-release.tar.gz MPL-2 README VERSION [root@node127 mongodb_common]# cd bin/ [root@node127 bin]# ls bsondump mongod mongofiles mongorestore mongotop install_compass mongodump mongoimport mongos mongo mongoexport mongoreplay mongostat

 

登錄

[root@node127 bin]# ./mongo --port 27017
MongoDB shell version v4.0.9 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("233f49fd-be88-4de1-8368-3a17b8671dde") } MongoDB server version: 4.0.9

 

進入 admin 數據庫,然后認證 賬號 密碼

mongos> use admin
switched to db admin
mongos> db.auth('admin','admin!123') 1

創建用戶和數據庫,然后插入數據

mongos> db.createUser({user: "apple",pwd: "111111",roles: [ { role: "dbOwner", db: "autotest" } ]} )
Successfully added user: {
    "user" : "apple", "roles" : [ { "role" : "dbOwner", "db" : "autotest" } ] }  mongos> db.auth('apple','111111') 1 mongos> use autotest switched to db autotest mongos> db.city.insert({city_id: NumberLong("1"),city:"beijing"}) WriteResult({ "nInserted" : 1 }) mongos> db.city.insert({city_id: NumberLong("2"),city:"shanghai"}) WriteResult({ "nInserted" : 1 })

查詢數據

mongos> db.city.find()
{ "_id" : ObjectId("5e7c4a3c89da5f03d4886442"), "city_id" : NumberLong(1), "city" : "beijing" } { "_id" : ObjectId("5e7c4b2989da5f03d4886443"), "city_id" : NumberLong(2), "city" : "shanghai" }

 

刪除數據

db.city.remove({});
WriteResult({ "nRemoved" : 4 })

  

 

 

附錄

幾種登錄方式

  1. 無密碼登陸本機部署的mongos路由服務 ,端口為27017

mongo --port 27017

  1. 使用用戶名密碼登陸

/mongodb_common/bin/mongo --port 27017 -uadmin -padmin12345

 

  1. 登陸遠程主機

./mongo 142.16.122.71:27017/admin -uadmin -padmin12345

解析:142.16.122.71:27017為主機名(IP)、端口。admin 為登陸的數據庫

 

 

命令

說明

show dbs

查看全部數據庫

show collections

顯示當前數據庫中的集合(類似關系數據庫中的表)

show users

查看當前數據庫的用戶信息

use <db name>

切換數據庫跟mysql一樣

db 或者db.getName()

查看當前所在數據庫

db.help()

顯示數據庫操作命令,里面有很多的命令

db.foo.help()

顯示集合操作命令,同樣有很多的命令,foo指的是當前數據庫下,一個叫foo的集合,並非真正意義上的命令

db.foo.find()

對於當前數據庫中的foo集合進行數據查找(由於沒有條件,會列出所有數據)

db.foo.find( { a : 1 } )

對於當前數據庫中的foo集合進行查找,條件是數據中有一個屬性叫a,且a的值為1

rs.status()

查看副本集狀態。

db.status()

查看數據庫狀態。

 

 

角色

權限

說明

數據庫用戶角色

read

提供了讀取所有非系統集合,以及系統集合中的system.indexes, system.js, system.namespaces

readWrite

包含了所有read權限,以及修改所有非系統集合的和系統集合中的system.js的權限

數據庫管理角色

 

dbOwner

數據庫的全部權限

dbAdmin

一些數據庫對象的管理操作

userAdmin

為當前用戶創建、修改用戶和角色。擁有userAdmin權限的用戶可以將該數據庫的任意權限賦予任意的用戶

集群管理權限

admin

數據庫包含了下面的角色,用戶管理整個系統,而非單個數據庫。這些權限包含了復制集和共享集群的管理函數

clusterAdmin

提供了最大的集群管理功能。相當於clusterManager, clusterMonitor, and hostManager和dropDatabase的權限組合

clusterManager

提供了集群和復制集管理和監控操作。擁有該權限的用戶可以操作config和local數據庫(即分片和復制功能)

clusterMonitor

僅僅監控集群和復制集

hostManager

提供了監控和管理服務器的權限,包括shutdown節點,logrotate, repairDatabase等

所有數據庫角色

readAnyDatabase

具有read每一個數據庫權限。但是不包括應用到集群中的數據庫

readWriteAnyDatabase

具有readWrite每一個數據庫權限。但是不包括應用到集群中的數據庫

userAdminAnyDatabase

具有userAdmin每一個數據庫權限,但是不包括應用到集群中的數據庫

dbAdminAnyDatabase

提供了dbAdmin每一個數據庫權限,但是不包括應用到集群中的數據庫

超級管理員權限

root

dbadmin到admin數據庫、useradmin到admin數據庫以及UserAdminAnyDatabase。但它不具有備份恢復、直接操作system.*集合的權限,但是擁有root權限的超級用戶可以自己給自己賦予這些權限

備份恢復角色

backup、restore

 

 

 

進入bin目錄

[root@node127 bin]# ls
bsondump         mongo   mongodump    mongofiles   mongoreplay   mongos     mongotop
install_compass  mongod  mongoexport  mongoimport  mongorestore  mongostat

 

無密碼登錄本機部署的mongos路由服務

[root@node127 bin]# ./mongo --port 27017
MongoDB shell version v4.0.9
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("648db192-0bb0-4737-83e4-ba6187c9971b") }
MongoDB server version: 4.0.9
mongos> 

  

切換數據庫,數據庫:admin。然后輸入賬號密碼

mongos> use admin
switched to db admin
mongos> db.auth('admin','admin!123')
1
mongos> 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM