У меня есть контейнер docker, в котором запущен Laravel 7.0 с проектом MariaDB 10.3.23, который вызывает исключение:
Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from `table` where `id` = 1)
всякий раз, когда я пытаюсь запустить любой Eloquent-код!
Но странно то, что если внутри любого контроллера я запускаю любой SQL:
$config = config('database.connections.mysql'); // I used like so to ensure it's taken from configs!
try {
$dbh = new \PDO('mysql:host=' . $config['host'] . ';dbname=' . $config['database'], $config['username'], $config['password']);
foreach ($dbh->query('SELECT * from table LIMIT 10') as $row) {
print_r($row);
}
$dbh = null;
} catch (\PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
, он выводит правильный результат!
На всякий случай мой файл .env должно быть правильным, так как он работает с PDO:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3036
DB_DATABASE=app
DB_USERNAME=app
DB_PASSWORD=secret
Я очистил все конфиги:
docker exec -it php-app php artisan optimize:clear
И ошибок нет!
Думаю, это должно быть что-то очевидное, чего мне не хватает, иначе довольно странная ошибка!
Заранее спасибо!