打开控制台,输入
mongod
即可启动数据库服务,此时如果退出控制台,数据库服务也会关闭。
再打开一个控制台,输入
mongo
即可连接数据库。
如果连接失败,可以使用 netstat -apn|grep mongod 来查询 mongod 监听的端口。
然后再控制台输入
mongo –port xxx
来连接数据库
在连接数据库时没有指定使用的 database, 则会默认到名为 ‘test’ 的数据库。
通过
use admin
来切换到名为 ‘admin’ 的数据库,之后输入
db.createUser({ user:"test_root", pwd:"123456", roles:[{ role:"root", db:"admin" }] } )
来创建一个用户名为 test_root, 密码为 123456 的超级用户。
其中 role 表示用户的角色,这里采用了内置的 root 角色。db 表示用户的 authentication database。这里的 authentication database 并不表示用户可以对这个数据库为所欲为。其实 authentication database 和 用户名共同构成了 用户的唯一标识(多个同名用户是允许的,只要他们的authentication database是不同)。
mongodb中的内置角色
authentication database
打开之前运行 mongod 的控制台,输入 ctrl + c 结束 mongod。
修改 /etc/mongodb.conf
将其中
# auth = true
的注释去掉,同时保证
# noauth=true
被注释掉,或者为 false。
通过
mongod –config /etc/mongodb.conf –fork
来启动数据库,此时,退出控制台,数据库服务仍会保持运行。
此时,我们有两种方式来连接数据库
1. 先连接数据库之后再登录
连接数据库和第二步完全一样
不过登录之后,没有任何的读写权限(show dbs 等操作均不可以)
能做的两件事是 use <数据库名>,和 db.auth()。
因此,我们可以使用如下方法登录
use admin db.auth('test_root','123456')
2.在连接数据库时登录
在控制台中输入
mongo -u 'test_root' -p '123456' --authenticationDatabase 'admin'
[1] https://docs.mongodb.com/manual/tutorial/enable-authentication/
[2] https://docs.mongodb.com/manual/core/security-users/
[3] https://docs.mongodb.com/manual/core/security-built-in-roles/