我为我的laravel 5.0-dev项目配置了mysql,如下所示:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST') ?: 'localhost',
'database' => env('DB_DATABASE') ?: 'homestead',
'username' => env('DB_USERNAME') ?: 'homestead',
'password' => env('DB_PASSWORD') ?: 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
但是,每当我尝试使用php artisan或laravel app本身与数据库进行交互时,我都会拒绝连接('PDOException',消息'SQLSTATE [HY000] [2002]') .
奇怪的是,当我运行下面的代码时,连接不会被拒绝 .
<?php
$dsn = 'mysql:dbname=homestead;host=localhost';
$user = 'homestead';
$password = 'secret';
try
{
$dbh = new PDO($dsn, $user, $password);
}
catch (PDOException $e)
{
echo 'Connection failed: ' . $e->getMessage();
}
我现在谷歌搜索3个小时,我还没有找到一个真正有效的解决方案 . 所以任何帮助都非常感谢 .
1 回答
问题是固定的 . 首先,如果您使用的是VM,就像我一样,您无法将主机设置为localhost,则必须将其设置为127.0.0.1 . 其次,需要明确定义进行连接的端口(mysql的默认值为33060) . 所以在我的例子中,连接配置定义如下:
最后,您需要修改项目中的.env文件: