【发布时间】:2015-06-27 16:03:17
【问题描述】:
我在使用 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
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
中将localhost 替换为127.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
通过run查看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 Socket(这一步对我有用)
【问题讨论】:
-
最佳实践是确保该帐户实际存在于 mysql 中...“我在街上找到了这把钥匙,它在我的前门锁中不起作用。我该如何更改锁以使钥匙工作?”
-
我认为您使用的是宅基地虚拟机?我发现它只有在你在虚拟机中时才会起作用。你可以通过 ssh vagrant@127.0.0.1 -p 2222 进入它。我的默认机器没有树枝说 db 正在运行。
标签: php laravel laravel-5 database-migration homestead