我正在用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 Object (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?
发布于 2015-09-19 00:23:40
我将homestead.yaml中指定的ip地址从本地主机更改为192.168.10.10。然后我运行了homestead provision
,这似乎解决了问题。主机无法解析localhost或127.0.0.1,因为它们已映射到自身。
发布于 2020-11-05 20:05:11
我得到这个错误是因为我忘记在XAMPP控制器中启动MySQL。
发布于 2018-06-01 09:03:40
有时可能会出现缓存问题:
php artisan config:clear
https://stackoverflow.com/questions/32514241
复制相似问题