【问题标题】:Laravel 5.5.23 Mongodb Authentication Failed ErrorLaravel 5.5.23 Mongodb 认证失败错误
【发布时间】:2018-05-23 23:28:20
【问题描述】:

我正在使用带有

的 Laravel 5.5.23 项目

“jenssegers/mongodb”:“^3.3”

PHP MongoDB 版本

MongoDB 扩展版本 1.3.4

PHP版本

PHP 版本 7.0.22-0ubuntu0.16.04.1

MongoDB版本

v3.4

我收到 Authentication failed 错误,尽管我可以从代码所在的同一个 ec2 实例连接到远程 mongo 服务器

Authentication failed.
#0 /var/www/html/app-testproj/vendor/mongodb/mongodb/src/Operation/InsertOne.php(86): MongoDB\Driver\Server->executeBulkWrite('testproj_technog...', Object(MongoDB\Driver\BulkWrite), Object(MongoDB\Driver\WriteConcern))
#1 /var/www/html/app-testproj/vendor/mongodb/mongodb/src/Collection.php(638): MongoDB\Operation\InsertOne->execute(Object(MongoDB\Driver\Server))
#2 [internal function]: MongoDB\Collection->insertOne(Array)
#3 /var/www/html/app-testproj/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Collection.php(45): call_user_func_array(Array, Array)
#4 /var/www/html/app-testproj/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Query/Builder.php(567): Jenssegers\Mongodb\Collection->__call('insertOne', Array)
#5 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(1270): Jenssegers\Mongodb\Query\Builder->insertGetId(Array, '_id')
#6 /var/www/html/app-testproj/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Eloquent/Builder.php(79): Illuminate\Database\Eloquent\Builder->__call('insertGetId', Array)
#7 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(707): Jenssegers\Mongodb\Eloquent\Builder->insertGetId(Array, '_id')
#8 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(672): Illuminate\Database\Eloquent\Model->insertAndSetId(Object(Jenssegers\Mongodb\Eloquent\Builder), Array)
#9 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(535): Illuminate\Database\Eloquent\Model->performInsert(Object(Jenssegers\Mongodb\Eloquent\Builder))
#10 /var/www/html/app-testproj/app/Infographics.php(27): Illuminate\Database\Eloquent\Model->save()
#11 /var/www/html/app-testproj/app/Console/Commands/SaveTechnographicSheetData.php(71): App\Infographics::saveData(Array)
#12 [internal function]: App\Console\Commands\SaveTechnographicSheetData->handle()
#13 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array)
#14 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#15 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#16 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Container/Container.php(549): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#17 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Illuminate\Container\Container->call(Array)
#18 /var/www/html/app-testproj/vendor/symfony/console/Command/Command.php(252): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#19 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Console/Command.php(167): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#20 /var/www/html/app-testproj/vendor/symfony/console/Application.php(918): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#21 /var/www/html/app-testproj/vendor/symfony/console/Application.php(222): Symfony\Component\Console\Application->doRunCommand(Object(App\Console\Commands\SaveTechnographicSheetData), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 /var/www/html/app-testproj/vendor/symfony/console/Application.php(129): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Console/Application.php(88): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /var/www/html/app-testproj/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(121): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /var/www/html/app-testproj/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 {main}

提前致谢。

【问题讨论】:

  • 在 mongo 日志中出现错误为“2017-12-10T05:00:35.597+0000 I ACCESS [conn56675] SCRAM-SHA-1 authentication failed for myUser on admin from client 10.100.101.11 ; UserNotFound:找不到用户 myUser@admin"

标签: mongodb php-7 laravel-5.5


【解决方案1】:

您很可能已启用您的 mongo 服务器的授权。 对于 *nix

检查 /etc/mongod.conf 中的 mongo 配置以获取授权选项。

安全

授权:启用

在 laravel 上检查 mondo 模块连接的配置。您需要设置可选选项б以安全连接到mongo服务器。

'mongodb' => [
            'driver'   => 'mongodb',
            'host'     => 'HOST',
            'port'     => '27017',
            'username' => 'username',
            'password' => 'pass',
            'database' => 'DB',
            'options' => [
                'db' => 'PUT_THERE_DB_NAME' //Sets the auth DB
            ]

【讨论】:

  • 请注意,在最新版本中,选项已更改。现在必须是:'database' => 'PUT_THERE_DB_NAME'
猜你喜欢
  • 2016-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-12
  • 2019-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多