jst*_*ein 14 php mysql pdo laravel
我正在Laravel 5中构建一个Web应用程序.该应用程序应该将"类别名称"存储在MySQL数据库中并显示一个表单以添加新的"类别名称".当我执行命令php artisan serve并导航到http:// localhost:8000/admin/categories /时,收到以下错误消息:
PDOException in Connector.php line 50:
SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
Run Code Online (Sandbox Code Playgroud)
根据我读到的关于堆栈溢出的几篇帖子,许多用户遇到此错误都没有正确配置.env文件,该文件覆盖了PHP数据对象(PDO)的默认设置,如database.php文件中所指定..env文件定义如下:
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
Run Code Online (Sandbox Code Playgroud)
并且database.php文件中的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,
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我进入我的虚拟机并运行时mysql -uhomestead -psecret homestead,我能够连接到数据库.问题是,当我可以使用相同的参数直接连接到它时,为什么Laravel无法连接到MySQL?还有什么可以拒绝进入Laravel?
我将homestead.yaml中指定的ip地址从localhost更改为192.168.10.10.然后我跑了homestead provision,似乎解决了这个问题.主机无法解析localhost或127.0.0.1,因为它已映射到自身.