Laravel не подключается к MySQL из контейнера Docker, но PDO - PullRequest
0 голосов
/ 18 июня 2020

У меня есть контейнер 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

И ошибок нет!

Думаю, это должно быть что-то очевидное, чего мне не хватает, иначе довольно странная ошибка!

Заранее спасибо!

1 Ответ

0 голосов
/ 18 июня 2020

Как заметил @aynber в комментариях. У меня в порте опечатка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...