宝塔面板使用MongoDB

本文介绍了在宝塔后台安装MongoDB及相关组件的方法,还说明了在PHP7.2环境中连接MongoDB的操作。同时详细阐述了给MongoDB设置用户账号密码登录的步骤,包括给root和特定库设置权限,最后介绍了通过修改配置文件开启安全登录和外网访问的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 转载: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

最后再进行无密码登录,对不起,不好意思了。

### 宝塔面板安装MongoDB时遇到的错误及其解决方案 当在宝塔面板上尝试安装或重启MongoDB服务时,可能会遭遇多种类型的错误。这些错误通常源于几个常见原因:版本兼容性问题、残留文件的存在或是特定配置项设置不当。 #### 版本兼容性和升级路径 如果之前已经存在旧版MongoDB实例,在直接通过宝塔“软件商店”进行更新操作时容易出现问题。这是因为MongoDB并不支持跨越多个主要版本的一次性升级过程;相反,应当逐步完成各次要版本间的迁移工作[^2]。这种情况下强行执行大跨度版本更替可能导致依赖库冲突或其他内部组件不匹配的情况发生。 #### 清理残留文件的重要性 即使是在宝塔界面内完成了所谓的“完全卸载”,实际上仍可能遗留某些关键性的系统级资源未被彻底清除掉——比如配置文件夹`/www/server/mongodb`内的内容。这类残余物体会干扰新一次部署流程中的初始化动作,进而阻碍正常启动行为的发生。 #### 针对具体报错信息采取措施 对于特别提到的一个典型案例:“Failed to unlink socket file /tmp/mongodb-27017.sock Unknown”。此现象表明进程试图移除用于本地通信的Unix域套接字却未能成功,这可能是由于前一运行实例尚未结束就进行了强制关闭所致。此时建议先手动检查并终止任何现存mongod相关联的服务实体后再试: ```bash ps aux | grep mongod kill -9 <PID> rm -f /tmp/mongo*.sock ``` 之后再依照官方文档指导重新创建必要的用户权限与网络监听参数设定[^4]。 #### 正确的操作指南 为了确保顺利安装和稳定运作,推荐按照以下步骤来进行: - 彻底清理先前存在的所有关于MongoDB的东西; - 参考官方手册选择适合当前操作系统环境的具体发行包来下载源码编译或者利用yum/apt-get等方式获取二进制分发档; - 细致调整my.conf等核心选项定义以适应实际应用场景需求; - 执行完整的测试用例验证整个集群能否按预期响应请求。 最后记得开启防火墙端口放行规则以便远程访问不受限。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值