转载:2019年3月17日 Yooer
首先宝塔后台 安装 MongoDB 安装了之后 还必须要安装组件 否则是不能使用的。
宝塔Linux 工具箱运行
pecl install mongodb
等待安装。。。
默认情况下,运行以上命令,会安装在版本最低的PHP环境中。
我们使用的只有PHP7.2,命令运行成功之后会自动在php.ini文件中添加扩展。
如果没有自动添加的可以根据命令执行完毕之后对应的地址进行手动添加。
在php配置项中
[Mongodb]
extension = /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so
重启PHP 现在可以使用php连接Mongo了。
下面说一下 给mongodb 设置用户账号密码登录
1、进入mongodb安装目录,下面是宝塔面板的默认目录
cd /www/server/mongodb/bin
2、输入命令行mongo,进入mongodb环境
mongo
3、切换到 admin 数据库
use admin
4、给admin设置用户密码
user: 用户名
pwd: 用户密码
roles: 用来设置用户的权限,比如读,读写 等等
db.createUser({user: 'root', pwd: 'admin_mima', roles: ['root']})
5、验证是否添加成功,db.auth(用户名,用户密码)
db.auth('root', 'mima')
如果返回 ‘1’表示验证成功, 如果是 ‘0’ 表示验证失败。
6、刚才是给root设置密码,现在要给特定的每个库设置权限,比如demo库
切换到demo库
use demo
7、接下来为demo库添加一个用户,并且赋予权限,
db.createUser({ user: 'demo', pwd: 'rtgsd123hfsad45', roles: [{ role: 'dbOwner', db: 'demo' }] })
修改一下 最近 有很多朋友看这篇文章, 我个人是直接给 dbOwner 这个权限的。
readWrite 这个权限好像有点不够,个人习惯仅供参考
这行代码意思是 创建一个cccc用户 给予读写权限 db表示该用户操作的数据库名。
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
8、一切搞定,重新开机mongodb,通过增加 –auth 开启安全登录
mongod --dbpath /www/server/mongodb/data --auth
不过、我不使用这种方式,我通过修改mongodb的配置文件来实现
原来的配置文件
修改后的
bindIp修改为 0.0.0.0 允许外网访问
authorization 修改为 enabled 开启认证
重启一下mongodb
最后再进行无密码登录,对不起,不好意思了。