laravel 配置mongodb 出现 Database [text] not configured 问题【已解决】

laravel  配置mongodb的时候  报的一个错误 : 这个错误是说【replSetTest】这个数据库没有配置

 

 刚看到这个错误的时候      我以为很简单就能解决【事实也是很简单,只是半天没找问题所在,一直都在瞎忙活】,于是就去百度这个问题,不知道是我百度的姿势不对还是咋的 就是没有找到解决问题的办法。

而且网上也有遇到相同问题的人,但是没有给出解决问题方法。 于是乎我的同事在配置项目时居然遇到了跟我一模一样的问题,他也半天没有找到问题的所在。所有我就写一个我自己解决问题的方法,不知道是不是通病的方法。

 

先说一下我的思路吧,看到上面的报错  第一肯定是到mongodb里面去找有没有 replSetTest 这个库了 是吧

 

 是的  我去查看了mongodb的库, ???  是有这个库的呀, laravel怎么回报没有这个库的错误呢?

配置出了问题吗? 于是出查  .env的配置

 

 看了一下也没啥问题呀   , 那还有啥地方是配置mongodb的地方吗?还有的 刚开始我也是忽略了这个地方。在哪里呢?  config/database.php

 

 

刚开始我看到这个配置也以为没有啥问题(暂时不要看划红线的地方),于是就看了一眼自认为没有问题就放过了这里的问题所在,所有接下来的找错都是徒劳的。

 

好了 上面就是我遇到这个问题的大致波折,接下来就是解决问题的关键了,其实说起解决问题的方法也是很奇葩。

大家注意看一下 config/database.php文件(如上图)话划红线的地方的命名, 为啥取这个名字?正常我们不都是用mongodb命名吗?后来根据问题一步步的找下去才发现

这里使用 business_card 的库名命名的。 啥意思? 之前这个项目的前辈定义的是(我猜测的): 这里定义的是啥名字, mongodb数据库配置的时候也必须使用这个business_card库,

要不然这个名字取的前不着村后不着店的也没啥含义不是,于是乎我就在mongodb中添加了一个business_card的库,修改了 .env的配置  注意修改完配置后需要清除一下配置缓存【php  artisan config:cache】。

再次刷新项目的时候,  哇  问题就解决了 。  反正最后我也不知道说啥。 本来这个问题也没啥的 , 主要是百度的时候没找到有用的信息,所有就写一个,也不知道遇到这个问题的是不是我一样的,至少这也是遇到这类问题的

一个解决方案吧。  

顺便附上mongodb的 添加库 和添加用户操作  具体请看mongodb官网教程

添加一个库  use business_card

添加成功后使用show dbs 此时是看不到刚添加的新库在列表中 

在刚添加的新库中添加一条数据db.abc.insert({"name":"zhangsan"})     #db 之前需要use到需要添加的库  abc 是数据库内的表名   insert内是一下对象

添加完之后在show dbs 就能看到刚添加新库了 

然后在添加一个用户 db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })   # 将useradmin这个用户添加到admin库中  role:指定的是useradmin这个用户的数据库权限     

admin库的权限请查看mongodb官网。

 

posted on 2021-02-26 12:02  红色的黑  阅读(576)  评论(0编辑  收藏  举报