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官网。