Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

janisozolins's avatar

Laravel 5.4 - Authentication Failed when trying to connect to MongoDB database

I am trying to implement a MongoDB within Laravel 5.4 using Jenssegers MongoDB plugin for Laravel but when I am trying to retrieve data from the database via the model, I get the following error:

This is the screenshot of the error

AuthenticationException in Find.php line 219:

Authentication failed.

in Find.php line 219
at Server->executeQuery('patientdatabase.patientcollection', object(Query), object(ReadPreference)) in Find.php line 219
at Find->execute(object(Server)) in Collection.php line 525
at Collection->find(array(), array('typeMap' => array('root' => 'array', 'document' => 'array'), 'readPreference' => object(ReadPreference), 'readConcern' => object(ReadConcern)))
at call_user_func_array(array(object(Collection), 'find'), array(array(), array('typeMap' => array('root' => 'array', 'document' => 'array')))) in Collection.php line 42
at Collection->__call('find', array(array(), array('typeMap' => array('root' => 'array', 'document' => 'array')))) in Builder.php line 370
at Builder->getFresh(array()) in Builder.php line 182
at Builder->get(array('*')) in Builder.php line 485
at Builder->getModels(array('*')) in Builder.php line 469
at Builder->get(array('*')) in Model.php line 336
at Model::all() in web.php line 15
at Router->{closure}() in Route.php line 189
at Route->runCallable() in Route.php line 163
at Route->run() in Router.php line 559
at Router->Illuminate\Routing{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing{closure}(object(Request)) in SubstituteBindings.php line 41
at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in VerifyCsrfToken.php line 65
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in StartSession.php line 64
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Router.php line 561
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520
at Router->dispatchToRoute(object(Request)) in Router.php line 498
at Router->dispatch(object(Request)) in Kernel.php line 174
at Kernel->Illuminate\Foundation\Http{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing{closure}(object(Request)) in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in ValidatePostSize.php line 27
at ValidatePostSize->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 53
at require('/Users/janisozolins/Sites/patientapp/public/index.php') in server.php line 128

The login credentials are correct in the database.php file which is why I don't know what is the problem. Does anyone know what could be causing this?

0 likes
5 replies
janisozolins's avatar
janisozolins
OP
Best Answer
Level 1

SOLUTION:

For some reason I was using 'db' instead of 'database' in the my 'options' array inside the database.php file.

Was

'mongodb' => [   
            'driver' => 'mongodb',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '27017'),
            'database' => env('DB_DATABASE', 'testdb'),
            'username' => env('DB_USERNAME', 'admin'),
            'password' => env('DB_PASSWORD', 'admin'), //
            'options' => array(
                'db' => 'testdb' // sets the authentication database required by mongo 3
            )
        ],

Should be

'mongodb' => [   
            'driver' => 'mongodb',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '27017'),
            'database' => env('DB_DATABASE', 'testdb'),
            'username' => env('DB_USERNAME', 'admin'),
            'password' => env('DB_PASSWORD', 'admin'), 
            'options' => array(
                'database' => 'testdb' // sets the authentication database required by mongo 3
            )
        ],
2 likes
lelyon's avatar

Hello everyone, i have the same problem. My 'options' array inside the database.php file are correctly set. I usually correctly use MongoDB before the last update of windows 10. Since this last update of my OS, i connat connect to the database using RoboMongo nor MongoDB Compass. I don't know why ans what to do. Do someone already face this problem please ?

when i try to connect using MongoDB compass or RoboMongo, i have this error : No suitable servers found (serverSelectionTryOnce set): [socket timeout calling ismaster on '127.0.0.1:27017']

sobhanattar's avatar

This is late, But maybe the problem with starting the service. Take a look at services and make sure that the MongoDB service is automated and is running. If not check the mongodb log for the problem. In my case it was permission on folders so I added ALL USERS to have Full Control on mongodb installation folder

Please or to participate in this conversation.