【发布时间】:2015-12-07 11:17:17
【问题描述】:
我正在 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.
根据我阅读的有关堆栈溢出的几篇文章,许多遇到此错误的用户没有正确配置 .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?
【问题讨论】:
-
你是通过宅基地运行你的文件吗?还是本地的?
-
我得到同样的信息
-
也许这会对你有所帮助stackoverflow.com/questions/32373592/…
-
我知道这个建议有点牵强,但是如果你的 php 是最新的或者它有 PDO 扩展,你可以试试吗?
-
“如果你消除了不可能,那么剩下的无论多么不可能,都必须是真理。”我正在使用 php 5.6,它应该支持 PDO 扩展