cre8
cre8

Reputation: 13562

"Access denied for user ''@'localhost' to database 'forge" appears randomly

I have a search function for my database but sometimes I get this message:

[2016-02-04 07:03:18] local.ERROR: PDOException: SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'forge' in C:\xampp\htdocs\reko\api\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:55
Stack trace:
#0 C:\xampp\htdocs\reko\api\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php(55): PDO->__construct('mysql:host=loca...', 'forge', '', Array)
...

In one of ten calls I get this 500 error message, but I don't know why. The other calls give the right result.

.env

APP_ENV=local
APP_DEBUG=true
APP_KEY=bJM6O0MnrIPaTNwKKOqNJkGinRDv1fnc

DB_HOST=localhost
DB_DATABASE=reko
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

Search function:

public function search(Modul $modul, Request $request)
{
    $question = Question::whereModulId($modul->id)
        ->where('value', 'LIKE', '%' . $request->get('keywords') . '%')
        ->with('tags')
        ->whereHas('exams', function ($query) use ($request) {
            $query->where('date', '>=', $request->get('year').'-01-01');
        });
    if (!$request->get('parent'))
        $question->where('type', '<>', 'parent');
    if (!$request->get('own'))
        $question->where('type', '<>', 'own');
    if (!$request->get('normal'))
        $question->where('type', '<>', 'normal');
    if ($request->get('answered'))
        $question->has('answers');
    return $question->paginate(10);
}

database.php

'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'forge'),
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

I haven't modified the database.php file and all other calls work great.

Upvotes: 15

Views: 14602

Answers (6)

Menisha Myelwaganam
Menisha Myelwaganam

Reputation: 266

Too often we have to face this error when hosting.

You should see that you have given Privileged Users permission to the database in the hosting.

First

First I need to see if the database name is correct.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=zhara_demo
DB_USERNAME=zhara_admin
DB_PASSWORD=zhara@2021 

or

  • Try php artisan clear:cache to clear your cache and re-configure
  • your cache php artisan config:cache it might works for you .

Upvotes: 0

VIKAS KATARIYA
VIKAS KATARIYA

Reputation: 6005

PLEASE RUN THIS COMMAND

php artisan cache:clear 

THEN

php artisan config:cache

Upvotes: 4

rohit prasain
rohit prasain

Reputation: 29

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=

try adding remaining methods in your .env file

Upvotes: 0

Arsii Rasheed
Arsii Rasheed

Reputation: 351

I had the same issue once. what I discovered was that my default connection was set to PostgreSQL instead of MySQL so I changed my default connection in database.php

'default' => env('DB_CONNECTION', 'mysql'),

other wise do add following to your .env

DB_CONNECTION=mysql

Upvotes: 0

anan karki
anan karki

Reputation: 19

Try php artisan clear:cache to clear your cache and re-configure your cache php artisan config:cache it might works for you .

Upvotes: 1

dExIT
dExIT

Reputation: 222

This seems to hold most of the answers : Laravel 5.2 not reading env file

Remember to not to edit your core files as one of the users said. Just do the safe checks, clear cache, should work.

Hope it helps.

As a workaround you can add to your DB forge account with all privileges.

Upvotes: 2

Related Questions