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>