@Albert1991

Почему не получается подключиться к базе в laravel на laradock?

Не получается в Laravel подключиться к бд из docker контейнера.

Структура проекта 5f08927111656973288260.png

Что последовательно делаю:
1. Из директории laradock запускаю $ docker-compose up -d nginx mysql
2. Захожу в контейнер $ docker-compose exec workspace bash
3. Пытаюсь сделать первую миграцию php artisan migrate

И выходит ошибка SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = project and table_name = migrations and table_type = 'BASE TABLE')

Конфиг Laravel:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=33061
DB_DATABASE=project
DB_USERNAME=project
DB_PASSWORD=secret


Конфиг из laradock:
MYSQL_VERSION=5.7
MYSQL_DATABASE=project
MYSQL_USER=project
MYSQL_PASSWORD=secret
MYSQL_PORT=33061
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d


На всякий случай database.php:
'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '33061'),
            'database' => env('DB_DATABASE', 'project'),
            'username' => env('DB_USERNAME', 'project'),
            'password' => env('DB_PASSWORD', 'secret'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],


Буду очень благодарен за любую помощь.
  • Вопрос задан
  • 697 просмотров
Решения вопроса 1
@zloyleva
Freelancer - web developer
DB_HOST= Должен быть равным названию сервиса БД в файле docker-compose
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@q2digger
никого не трогаю, починяю примус
Где база находится? В контейнере или на хосте? Или на другом сервере. Вот тот адрес и указывайте а не 127.0.0.1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы