我正在 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.
根据我在 stack overflow 上阅读的几篇文章,许多遇到此错误的用户没有正确配置 .env 文件,该文件会覆盖 database.php 文件中指定的 PHP 数据对象 (PDO) 的默认设置。 .env 文件定义如下:
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
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,
奇怪的是,当我通过 ssh 进入我的虚拟机并运行 mysql -uhomestead -psecret homestead
时,我能够连接到数据库。问题来了,为什么我用同样的参数可以直接连接到Laravel却连接不上MySQL呢?还有什么可能会拒绝访问 Laravel?
最佳答案
我得到这个错误是因为我忘记在 XAMPP Controller 中启动 MySQL。
关于PHP Laravel : No connection could be made because the target machine actively refused it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32514241/