我有一个mongodb,其中有一个在admin中定义的用户,如下所示
{
"_id" : "admin.realtebo",
"user" : "realtebo",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
},
{
"role" : "readWriteAnyDatabase",
"db" : "admin"
}
],
}
使用linux shell工具mongo
中的凭据时,我可以在mongo安装中的每个数据库上成功执行所需的操作
我在我的.env
中输入了以下(它们是正确的)数据
DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=27017
DB_DATABASE=dev_db
DB_USERNAME=realtebo
DB_PASSWORD=<mypasswor>
Laravel无法连接
MongoDB \ Driver \ Exception \ AuthenticationException (11)
Authentication failed.
我确定这不是Laravel或配置问题,因为同一个应用程序可以成功连接到远程mongodb。
很抱歉出现这样的菜鸟问题,但是..如何必须在mongo的管理数据库中设置用户,以便realtebo
可以将WriteWrite写入dev_db
?我是否必须将用户明确添加到dev_db
中?
预先感谢,我确定这是愚蠢的。
答案 0 :(得分:1)
如果是jenssegers的mongodb,则需要在config \ database.php中指定身份验证数据库:
'mongodb' => [
'driver' => 'mongodb',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', 27017),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'options' => [
'database' => 'admin' // <=== here
]
],