访问被拒绝,用户为'homestead'@'localhost'(使用密码:YES)
访问被拒绝,用户为'homestead'@'localhost'(使用密码:YES)
我正在使用Mac OS Yosemite和Laravel 5.0。
在我的本地环境中,我运行php artisan migrate
时一直都会遇到以下错误:
用户\'homestead\'@\'localhost\'的访问被拒绝(使用密码:是)
配置
这里是我的.env
APP_ENV=local APP_DEBUG=true APP_KEY=***** DB_HOST=localhost DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret
app\\config\\database.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
在app/database.php
中
用127.0.0.1
替换localhost
\'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 输入密码: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 Socket(这一步对我有效)
Access denied for user ‘homestead’@’localhost’ laravel 5错误的原因是因为.env文件可能存在缓存问题,因为Laravel 5使用基于环境的配置。
1. 转到您的应用程序根目录并打开 .env 文件 (在Ubuntu中可能是隐藏的,所以按ctrl+h显示隐藏文件,如果您在终端中,请输入:ls -a
来显示隐藏文件),在您的编辑器中更改数据库配置设置。然后保存您的 .env 文件。
DB_HOST=localhost DB_DATABASE=laravelu DB_USERNAME=root DB_PASSWORD=''
2. 然后重新启动您的Apache服务器/ Web 服务器。然后刷新您的页面,问题解决了。
3. 如果仍然存在问题,请尝试运行下面的命令来清除旧的配置缓存文件。
php artisan config:clear
现在您已经解决了错误。