【问题标题】:Laravel access denied for user myproject@localhost用户 myproject@localhost 的 Laravel 访问被拒绝
【发布时间】:2016-05-03 03:46:27
【问题描述】:

我正在使用 Laravel 4.2,并且我正在使用 ssh 登录服务器。 我正在尝试进行新的迁移并且我跑了:

php artisan make:migration create_logs_table --create=logs

但我收到此错误:

{"error":{"type":"PDOException","message":"SQLSTATE[28000] [1045] Access denied for user 'myproject'@'localhost' (using password: YES)","file":"\/home\/public_html\/myproject\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connectors\/Connector.php","line":47}}

我没有更改我的 env 文件 - 数据库、用户名和密码仍然相同。当我使用命令行并尝试创建新的迁移时,我收到了这个错误。 为什么我为用户 myproject 收到此错误 -> 我的用户名是另一个 - 这是项目的名称。

谢谢!

【问题讨论】:

  • 您能发布您的 .env 文件吗?该错误肯定表明 Laravel 由于凭据错误而无法访问数据库。
  • 这里没有什么特别的。您的 MySQL 凭据不正确。
  • 我没有更改 env 文件,这很好 - 站点正在运行并且数据库没有问题。当我通过命令行运行此迁移时,我收到此错误。错误是:“用户 myproject@localhost 的访问被拒绝 -> 为什么项目名称设置为用户?:)
  • artisan 命令使用 .env 文件中提供的凭据。你不能发布 .env 文件吗? artisan 命令不使用与网站不同的凭据。
  • 据我所知,在 4.2 中没有 .env 文件,但数据库配置是从 app/config/database.php 读取的。尝试使用 php artisan env 以确保您在正确的环境配置文件中。如果凭据是好的,它必须工作。

标签: php laravel ssh migration


【解决方案1】:

Laravel 4 中的 CLI 可能很棘手。尽管有 .env 文件,但您也可以在 web 和 CLI 集中拥有不同的环境。

所以...首先,如果您有本地环境 - 在 .env 文件中:

export APP_ENV=local

但这还不够。您必须打开您的 bootstrap/start.php 文件并将您的机器设置为指定环境:

$env = $app->detectEnvironment(function() use ($app){
    $env = array_get($_SERVER, 'APP_ENV');
    if(empty($env)){
        $envs = [
            'local' => ['your_machine_name'],
        ];
        $env = $app->detectEnvironment($envs);
    }
    return $env;
});

确保您已准备好所有这些,并且您在良好的环境中工作。

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 2023-03-20
    • 2021-07-11
    相关资源
    最近更新 更多