当前版本
1 | { |
本文仅适用于上述版本,其他版本中配置过程可能存在差别
本文参考 宝塔面板 mongodb设置账号,密码,数据库,并配置远程连接 并结合实际体验编写
本文不附带图片,所有过程均以文字说明为主。
安装MongoDB
登录宝塔面板,点击软件商店,找到MongoDB,点击安装,稍等片刻即可完成。
配置MongoDB
这是安装完成后默认的配置文件内容,注意 authorization
要为 disabled
。
1 | ## content |
连接MongoDB及账号配置
创建完成时,数据库中应该会包含 admin
数据库如果没有,可以新建一个。
打开SSH终端,进入MongoDB目录,默认安装在 /www/server/mongodb/bin
。
1 | > cd /www/server/mongodb/bin |
进入mongoDB环境,并切换到admin数据库
1 | > mongo |
查看当前数据库中有哪些用户,当没有用户时不会显示任何信息
1 | > show users |
创建一个管理员账户
1 | > db.createUser( { user: 'admin', pwd: 'password', roles:[ { role: 'userAdminAnyDatabase', db: 'admin' } ] } ) |
这条命令的意思是:在admin数据库中创建用户admin,并给该用户admin数据库上的userAdminAnyDatabase角色。
admin用户用于管理账号,不能进行关闭数据库等操作。
执行命令会看到类似的信息
1 | Successfully added user: { |
创建完成后再次执行 show users
命令,会显示刚才创建的用户信息。
接下来创建root账号
1 | > db.createUser({ user: 'root', pwd: 'password', roles: [ { role: 'root', db: 'admin' } ] }) |
测试账号登录
1 | > db.auth('user', 'pwd') |
成功返回1,失败返回0
创建数据库以及账号
使用use语法创建数据库,数据库不存在时会自动创建一个新的数据库,数据库存在时会切换到指定数据库。
1 | > use [database_name] |
创建当前数据库管理角色
1 | > db.createUser( { user: "user",pwd: "password",roles: [ { role: "dbOwner", db: "yourdatabase" } ] } ) |
role: 'dbOwner'
代表数据库所有者角色,它拥有当前数据库的最高权限。注意,创建该角色时请先切换到刚才创建的数据库中。
创建完成后使用 show users
查看用户。
修改配置文件,授权远程登录
1 | authorization: disabled |
需要注意,要设置放行端口,否则本地将无法连接到数据库。
Mongodb 的 BindIP 需要设置为 0.0.0.0,表示不限制ip。
当前部分常用命令
1 | # 查看当前所有数据库 |
本地连接MongoDB
这里我尝试了Navicat和MongoDB Compass
其中Navicat连接时需要使用新建的一个数据库,和该数据库的用户才可以登录,使用admin账号登陆后查看新建的数据库提示未授权。
而MongoDB Compass则可以使用admin账号登录,与Navicat相反,我使用指定账户登录数据库时提示失败。
这方面可能是软件差异或是配置问题,但现阶段就不用先纠结这些了。
附
以下内容仅作简单说明,具体请查看MongoDB文档。
MongoDB内置角色有如下:
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)内部角色:__system