生产中 Laravel 的数据库访问被拒绝

Database Access denied on Laravel in Production

我正在尝试在生产托管上发布我的 Laravel 5.8 应用程序。我已上传文件并在 .env 文件中进行了更改。但是仍然在访问我的应用程序时,它会抛出错误:

Access denied for user 'root'@'127.0.0.1' (using password: NO)

下面是我的 .env 文件:

DB_CONNECTION=mysql
DB_HOST= ip
DB_PORT=3306
DB_DATABASE=secret
DB_USERNAME='secret'
DB_PASSWORD='secret'

我也在database.php中做了修改:

'users' => [
    'driver' => 'mysql',
    'url' => env('DATABASE_URL'),
    'host' => env('DB_HOST', 'secret'),
    'port' => env('DB_PORT', '3306'),
    'database' => env(‘DB_DATABASE', 'secret'),
    'username' => env('DB_USERNAME', 'secret'),
    'password' => env('DB_PASSNORD', 'secret'),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
        PDO: :I'IYSQL_ATTR_SSL_CA => env( 'MYSQL_ATTR_SS L_CA' ),
    ]) : [],
},

正如评论所建议的那样,使用 localhost 而不是 127.0.0.1,但是,同样的错误发生在我身上,问题是 Laravel 项目缓存:只需使用 php artisan config:cache 重新缓存文件,或者只删除 bootstrap/cache 文件夹中的所有文件

试试。

php artisan config:cache

然后

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=secret   //enter your right databse name
DB_USERNAME=secret  //please check your username
DB_PASSWORD=secret  //please check your password

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=secret  //enter your right databse name
DB_USERNAME=root     //please check your username
DB_PASSWORD=enter your correct password //please check your password

改变你的databse.php

'users' => [
    'driver' => 'mysql',
    'url' => env('DATABASE_URL'),
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env(‘DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSNORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => false,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
        PDO: :I'IYSQL_ATTR_SSL_CA => env( 'MYSQL_ATTR_SS L_CA' ),
    ]) : [],
},