关于php:SQLSTATE [HY000] [1044] cPanel中用户的访问被拒绝

SQLSTATE[HY000] [1044] Access denied for user in cPanel

我已经在cPanel中上传了一个Laravel项目。它给出以下错误

SQLSTATE[HY000] [1044] Access denied for user 'amartuki_finance'@'localhost' to database 'amartuki_finance'

但是我已经更改了.env文件的数据库名称,用户名和密码。还要在config/database.php文件中进行配置。

.env文件

1
2
3
4
5
6
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=amartuki_finance
DB_USERNAME=amartuki_finance
DB_PASSWORD=amartuki_finance

config/database.php文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'amartuki_finance'),
        'username' => env('DB_USERNAME', 'amartuki_finance'),
        'password' => env('DB_PASSWORD', 'amartuki_finance'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],

那是什么解决办法!有人帮忙吗?


解决了我的问题。这是一个非常愚蠢的错误。

创建用户后,我没有将用户添加到数据库中,这就是为什么用户未获得任何特权的原因。

现在更改这些内容,项目将成功运行。


您应按照以下方法在Laravel

中加载env

  • 加载环境文件
  • Dotenv::load(base_path()); // path of your env file

  • 需要你的价值观
  • Dotenv::required(array('DB_PORT','DB_HOST',
    'DB_DATABASE','DB_USERNAME', 'DB_PASSWORD','DB_SOCKET'));

  • 如下分配
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'mysql' => [
        'driver' => 'mysql',
        'host' => getenv('DB_HOST'),
        'port' => getenv('DB_PORT'),
        'database' => getenv('DB_DATABASE'),
        'username' => getenv('DB_USERNAME'),
        'password' => getenv('DB_PASSWORD'),
        'unix_socket' => getenv('DB_SOCKET'),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],