我在使用Laravel 5.0的Mac OS Yosemite上。
在我的本地环境中,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,
]
如何避免这种错误?
我试过了 :
在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
尝试指定环境
php artisan migrate --env=local
通过运行检查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
这意味着它正在运行。
检查MySQL UNIX套接字(这一步对我有用)
使用MySQL 查找unix_socket位置
mysql -u homestead -p
mysql> show variables like '%sock%';
+-----------------------------------------+-----------------------------+
| Variable_name | Value |
+-----------------------------------------+-----------------------------+
| performance_schema_max_socket_classes | 10 |
| performance_schema_max_socket_instances | 322 |
| socket | /var/run/mysqld/mysqld.sock |
+-----------------------------------------+-----------------------------+
3 rows in set (0.00 sec)
然后我去config / database.php
我更新这一行: 'unix_socket' => '/tmp/mysql.sock',
至 : 'unix_socket' => '/var/run/mysqld/mysqld.sock',
而已。这是我的第四次尝试。希望这些步骤对您有所帮助。:D
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句