用户“homestead”@'localhost'的访问被拒绝(使用密码:YES)1234

我使用的是使用Laravel 5.0的Mac OS Yosemite。

在我当地的环境中,我跑步,我不断得到:php artisan migrate

用户“homestead”@'localhost'的访问被拒绝(使用密码:YES)

配置

这是我的.env

APP_ENV=local
APP_DEBUG=true
APP_KEY=*****

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

应用程序\配置\数据库.php

   'mysql'       => [
    'driver'      => 'mysql',
    'host'        => env('DB_HOST', 'localhost'),
    'database'    => env('DB_DATABASE', 'homestead'),
    'username'    => env('DB_USERNAME', 'homestead'),
    'password'    => env('DB_PASSWORD', 'secret'),
    'unix_socket' => '/tmp/mysql.sock',
    'charset'     => 'utf8',
    'collation'   => 'utf8_unicode_ci',
    'prefix'      => '',
    'strict'      => false,
    ]

如何避免这种错误?

我试过 :


1

应用程序/数据库中.php

替换为localhost127.0.0.1

'host'=> env('DB_HOST', 'localhost') -->'host' => env('DB_HOST', '127.0.0.1')

另外,在 .env

DB_HOST=localhost --> DB_HOST=127.0.0.1


2

尝试指定环境

php artisan migrate --env=local


3

检查MySQL是否正在运行

mysqladmin -u homestead -p status Enter password: secret

我得到了

Uptime: 21281 Threads: 3 Questions: 274 Slow queries: 0 Opens: 327 Flush tables: 1 Open tables: 80 Queries per second avg: 0.012

这意味着它正在运行。


4

检查 MySQL UNIX 套接字(此步骤适用于我))


答案 1

用户'homestead'@'localhost' laravel 5错误的访问被拒绝的原因是.env.php文件的缓存问题,导致Laravel 5正在使用.env文件中基于环境的配置。

1.转到应用程序根目录并打开.env文件(在ubuntu中可能是隐藏的,因此按+以显示隐藏文件,如果您在终端中,则在编辑器中键入:以显示隐藏文件)并更改数据库配置设置。然后保存您的 .env 文件ctrlhls -a

DB_HOST=localhost
DB_DATABASE=laravelu
DB_USERNAME=root
DB_PASSWORD=''

2.然后重新启动您的apache服务器/Web服务器。并刷新您的页面,您已经完成了

3. 如果仍有问题,请尝试运行以下命令以清除旧的配置缓存文件。

php artisan config:clear

现在您已经完成了错误


答案 2

TLDR:您需要停止服务器Ctrl + c并使用php artisan serve重新开始


详:

如果您使用的是Laravel,并且已经启动了本地开发服务器php artisan serve

在上述服务器已经运行后,您可以在.env文件中更改与数据库服务器相关的内容。比如从MySQL迁移到SQLite之类的东西。您需要确保停止上述过程,即 或任何停止该过程的东西。然后再次重新启动Artisan Serve,即y并刷新浏览器,与数据库相关的问题将得到解决。这就是对我在Laravel 5.3中起作用的原因Ctrcl Cphp artisan serve


推荐