Home>

I want to run the created Laravel application.

Locallyphp artisan serveWhen I type a command and try to log in to the app

SQLSTATE[HY000] [1045] Access denied for user'homestead'@'localhost' (using password: YES)


And I get an error message from the database.

Applicable source code

.env

APP_NAME=stories
APP_ENV=local
APP_KEY=base64:nsHYic1BkVCvl4ZwLm3uHGpkUEkVO2UFM+0HNeG1wfc=
APP_DEBUG=true
APP_URL=http://laravelstories.work
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"


config/database.php

<?php
use Illuminate\Support\Str;
return [
    /*
    |------------------------------------------------- -------------------------
    | Default Database Connection Name
    |------------------------------------------------- -------------------------
    |
    | Here you may specify which of the database connections below you wish
    | to use as your default connection for all database work. Of course
    | you may use many connections at once using the Database library.
    |
    */
    'default' =>env('DB_CONNECTION','mysql'),
    /*
    |------------------------------------------------- -------------------------
    | Database Connections
    |------------------------------------------------- -------------------------
    |
    | Here are each of the database connections setup for your application.
    | Of course, examples of configuring each database platform that is| supported by Laravel is shown below to make development simple.
    |
    |
    | All database work in Laravel is done through the PHP PDO facilities
    | so make sure you have the driver for your particular database of
    | choice installed on your machine before you begin development.
    |
    */
    'connections' =>[
        'sqlite' =>[
            'driver' =>'sqlite',
            'url' =>env('DATABASE_URL'),
            'database' =>env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' =>``,
            'foreign_key_constraints' =>env('DB_FOREIGN_KEYS', true),
        ],


        'mysql' =>[
            'driver' =>'mysql',
            'url' =>env('DATABASE_URL'),
            'host' =>env('DB_HOST', '127.0.0.1'),
            'port' =>env('DB_PORT', '3306'),
            'database' =>env('DB_DATABASE','homestead'),
            'username' =>env('DB_USERNAME','homestead'),
            'password' =>env('DB_PASSWORD','secret'),
            'charset' =>'utf8',
            'collation' =>'utf8_unicode_ci',
            'prefix' =>``,
            'prefix_indexes' =>true,
            'strict' =>true,
            'engine' =>null,
            'options' =>extension_loaded('pdo_mysql') ?array_filter((
                PDO::MYSQL_ATTR_SSL_CA =>env('MYSQL_ATTR_SSL_CA'),
            ]): [],


        ],


        'pgsql' =>[
            'driver' =>'pgsql',
            'url' =>env('DATABASE_URL'),
            'host' =>env('DB_HOST', '127.0.0.1'),
            'port' =>env('DB_PORT', '5432'),
            'database' =>env('DB_DATABASE','forge'),
            'username' =>env('DB_USERNAME','forge'),
            'password' =>env('DB_PASSWORD', ``),
            'charset' =>'utf8',
            'prefix' =>``,
            'prefix_indexes' =>true,
            'schema' =>'public',
            'sslmode' =>'prefer',
        ],


        'sqlsrv' =>[
            'driver' =>'sqlsrv',
            'url' =>env('DATABASE_URL'),
            'host' =>env('DB_HOST','localhost'),
            'port' =>env('DB_PORT', '1433'),
            'database' =>env('DB_DATABASE','forge'),
            'username' =>env('DB_USERNAME','forge'),
            'password' =>env('DB_PASSWORD', ``),
            'charset' =>'utf8','prefix' =>``,
            'prefix_indexes' =>true,
        ],


    ],


    /*
    |------------------------------------------------- -------------------------
    | Migration Repository Table
    |------------------------------------------------- -------------------------
    |
    | This table keeps track of all the migrations that have already run for
    | your application. Using this information, we can determine which of
    | the migrations on disk haven't actually been run in the database.
    |
    */
    'migrations' =>'migrations',
    /*
    |------------------------------------------------- -------------------------
    | Redis Databases
    |------------------------------------------------- -------------------------
    |
    | Redis is an open source, fast, and advanced key-value store that also
    | provides a richer body of commands than a typical key-value system
    | such as APC or Memcached. Laravel makes it easy to dig right in.
    |
    */
    'redis' =>[
        'client' =>env('REDIS_CLIENT','phpredis'),
        'options' =>[
            'cluster' =>env('REDIS_CLUSTER','redis'),
            'prefix' =>env('REDIS_PREFIX', Str::slug(env('APP_NAME','laravel'),'_').'_database_'),
        ],


        'default' =>[
            'url' =>env('REDIS_URL'),
            'host' =>env('REDIS_HOST', '127.0.0.1'),
            'password' =>env('REDIS_PASSWORD', null),
            'port' =>env('REDIS_PORT', 6379),
            'database' =>env('REDIS_DB', 0),
        ],


        'cache' =>[
            'url' =>env('REDIS_URL'),
            'host' =>env('REDIS_HOST', '127.0.0.1'),
            'password' =>env('REDIS_PASSWORD', null),
            'port' =>env('REDIS_PORT', 6379),
            'database' =>env('REDIS_CACHE_DB', 1),
        ],


    ],


];
What I tried

I tried to fix it by referring to the following cases.
Referenced site
Referenced site

  • Answer # 1

    .envAre the DB name and user name shown in the page correct?

    DB_DATABASE=homestead
    DB_USERNAME=homestead
    DB_PASSWORD=secret


    This part.

    Please confirm whether to put it in DB directly with mysql,.envI think it's better to review the settings for to see if they are correct.

    .envAfter modifying the file$php artisan config:clearI hope you can delete the cache with.

  • Answer # 2

    The following causes and investigations will help identify the cause.

    1
    Make sure you can connect using the MySQL client:

    $mysql --host=127.0.0.1 --user=homestead --password homestead

    Or:

    $mysql --host=localhost --user=homestead --password homestead

    If you can connect: Most likely there is a problem with your Laravel application
    If you can't connect: Most likely there is a database problem

    2
    Let's check the log on the MySQL side

    If the log is not output,
    Make the following settingsMySQLWhen you restart/var/log/mysql/errorIt seems that the log is output to:

    [mysqld]
    :#Enter a name for the error log file. Otherwise a default name will be used.
    log_error = /var/log/mysql/error
    :#defaults to 1.If the value is >1, 1, aborted connections and access-denied errors for new connection attempts are written to the error log
    log_warnings = 2

    Reference: logging-Log MySQL login attempts-Server Fault