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 })
附錄
幾種登錄方式
- 無密碼登陸本機部署的mongos路由服務 ,端口為27017
mongo --port 27017
- 使用用戶名密碼登陸
/mongodb_common/bin/mongo --port 27017 -uadmin -padmin12345
- 登陸遠程主機
./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>