SQLSTATE[HY000] [2002] No such file or directory

У меня не так много опыта работы с докером, из за чего не совсем понимаю почему вышла эта ошибка. введите сюда описание изображения

Я уже испробовал самые популярные варианты (изменить в .env DB_HOST c localhost на 127.0.0.1 или же на имя контейнера) так же указание пути к soket.

Docker-compose файл, модуль приложения и бд:

  db:
    image: mysql:8.0
    container_name: db
    restart: unless-stopped
    tty: true
    ports:
      - "8001:3306"
    environment: 
      MYSQL_DATABASE: test_db
      MYSQL_ROOT_USER: root
      MYSQL_ALLOW_EMPTY_PASSWORD: 1
    volumes:
      - /var/data/mysql:/var/lib/mysql
      - /etc/mysql:/etc/mysql
      - .docker/mysql/mysql-files:/var/lib/mysql-files
      - .docker/mysql/my.cnf:/etc/mysql/my.cnf
    networks:
      - test-app
    
  php-fpm:
    depends_on:
      - db
    build:
      context: .docker/php-fpm
      dockerfile: Dockerfile
    image: test-php-fpm
    environment:
      XDEBUG_REMOTE_ENABLE: 1
    volumes:
      - .:/var/www/laravel:delegated
      - .docker/php-fpm/extra-config.ini:/usr/local/etc/php/conf.d/extra-config.ini:cached
      - .docker/php-fpm/laravel-schedule:/etc/cron.d/laravel-schedule:cached
      - ~/.composer/cache:/root/.composer/cache:delegated
    networks:
      - test-app

.env:

DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=8001
DB_DATABASE=test_db
DB_USERNAME=root
DB_PASSWORD=

database.php:

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '8001'),
            'database' => 'test_db',
            'username' => 'root',
            'password' => env('DB_PASSWORD', ''),
            // 'unix_socket' => env('DB_SOCKET', ''),
            'unix_socket' => '/var/run/mysqld/mysqld.sock',
            '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'),
            ]) : [],
        ],

конфиг php

extension=imagick.so

pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock

post_max_size = 1G
upload_max_filesize = 1G
max_file_uploads = 200
memory_limit = 1G

К самой бд подключиться могу спокойной через тот же heidiSQL, есть предположение что дело с php или с самим докером, заранее спасибо за помощь!


Ответы (1 шт):

Автор решения: Web Desg

Миграции выполнили?

php artisan migrate

Второй вариант, идем в класс модели и смотрим название таблицы в переменной $table и сверяем с названием в БД.

→ Ссылка