Я создаю веб-приложение в Laravel 5. Приложение должно получить "имена категорий", хранящиеся в базе данных 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, который переопределяет настройки по умолчанию для объекта данных PHP (PDO), как указано в файле database.php. Файл .env определен ниже:
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
И ключ mysql в файле database.php указан как:
'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?