当我使用'php artisan migrate'时,我收到以下错误消息:
[Illuminate \ Database \ QueryException] SQLSTATE [HY000] [2002]连接被拒绝(SQL:select * from information_schema.tables where table_schema = homestead和table_name = migrations)[PDOException] SQLSTATE [HY000] [2002]连接被拒绝
我已经使用XAMPP在Mac上安装了Laravel并进行了以下设置:
为database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
.ENV
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
我已经尝试了几种我可以在网上找到的解决方案,但迄今为止都没有 .
我希望有一个人可以帮助我!先感谢您!
5 回答
这真的很烦人,但将DB_HOST = 127.0.0.1更改为DB_HOST = localhost可以解决问题 . 试一试(显然你的文件权限必须是正确的)
首先创建数据库 . 在这里阅读更多相关信息:http://www.complete-concrete-concise.com/web-tools/creating-a-mysql-database-using-xampp
假设您的新数据库名为:my_db .
在你的.env中使用它:
嗨,当你在database.php文件中有
unix_socket => env('DB_SOCKET', '')
时,env.file中没有DB_SOCKET= /path/to/socket
.您可以通过
$ mysql_config --socket
获取/ path / to / socket这是迟到的,但它可能会帮助某人 . 我有同样的错误,原来这是我的.env文件中的拼写错误 . 而不是DB_HOST,它是B_HOST . 在你的情况下,它可能是一些其他的env键 . 只需仔细观察,您就会发现您的文件格式错误 .
我的解决方案与我在网上找到的其他任何地方都不同 .
我不知不觉在Mac上使用了XAMPP的VM(虚拟机)版本,其功能与普通版本不同 . VM XAMPP interface looks like this.
如果您使用的是VM XAMPP,请将其卸载并安装correct XAMPP version here.
一旦我安装了新版本
php artisan migrate
就可以了 .