Laravel 5.1 - Homestead MySQL 连接。 `Connection Refused` & `No such file or directory`
Laravel 5.1 - Homestead MySQL connection. `Connection Refused` & `No such file or directory`
当我的 .env 文件是这样的:
DB_HOST=127.0.0.1
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
终端 php artisan migrate
工作成功但在本地主机测试中,它抛出 :
PDOException in Connector.php line 50:
SQLSTATE[HY000] [2002] Connection refused
但是当我的 .env 文件是这样的时候:
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
在本地主机上一切(注册)工作正常但是 php artisan migrate
在终端上抛出:
[PDOException] SQLSTATE[HY000] [2002] No such file or directory
我的 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'),
'port' => '33060',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
在 VM 内部,sql 端口是 3306。在 homestead VM 之外,主机只有一个转发到 homestead VM 上的 SQL 端口。这就是为什么 33060 指向 3306.
Laravel Homestead Vagrant Box Database Problems
解决问题。执行以下操作:
.env
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
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'),
'port' => env('DB_PORT', 3306),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
这将使您的浏览得到修复。现在 运行 artisan 命令,只需在 VM 上执行 vagrant SSH 和 运行 它们。
当我的 .env 文件是这样的:
DB_HOST=127.0.0.1
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
终端 php artisan migrate
工作成功但在本地主机测试中,它抛出 :
PDOException in Connector.php line 50:
SQLSTATE[HY000] [2002] Connection refused
但是当我的 .env 文件是这样的时候:
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
在本地主机上一切(注册)工作正常但是 php artisan migrate
在终端上抛出:
[PDOException] SQLSTATE[HY000] [2002] No such file or directory
我的 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'),
'port' => '33060',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
在 VM 内部,sql 端口是 3306。在 homestead VM 之外,主机只有一个转发到 homestead VM 上的 SQL 端口。这就是为什么 33060 指向 3306.
Laravel Homestead Vagrant Box Database Problems
解决问题。执行以下操作:
.env
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
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'),
'port' => env('DB_PORT', 3306),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
这将使您的浏览得到修复。现在 运行 artisan 命令,只需在 VM 上执行 vagrant SSH 和 运行 它们。