0

I have a problem that I cannot connect to mysql and I use docker. phpmyadmin does not allow creating database and project error C:\xampp\htdocs\news\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70. Please help me, thank you very much!!!

my error: enter image description here enter image description here

docker-compose.yaml:

version: '3.8'
services:
  app:
    build:
      context: .
      dockerfile: app.dockerfile
    working_dir: /var/www
    volumes:
      - ./:/var/www
    depends_on:
      - "database"
  web:
    build:
      context: .
      dockerfile: web.dockerfile
    working_dir: /var/www
    volumes:
      - ./:/var/www
    depends_on:
      - "app"
      - "database"
    ports:
      - 80:80
  database:
    image: mysql
    volumes:
      - dbdata:/var/lib/mysql
    environment:
      MYSQL_DATABASE: news
      MYSQL_ROOT_PASSWORD: password
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_USER: ${DB_USERNAME}
    ports:
      - "3306:3306"
  pma:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=database
      - PMA_USER=${DB_USERNAME}
      - PMA_PASSWORD=${DB_PASSWORD}
      - PMA_PORT=${DB_PORT}
    ports:
      - 3400:80
    depends_on:
      - database
volumes:
    dbdata:

my .env:

DB_CONNECTION=mysql
DB_HOST=database
DB_PORT=3306
DB_DATABASE=news
DB_USERNAME=laravel-user
DB_PASSWORD=laravel-password
  • Set container name https://stackoverflow.com/a/56302331/3041129 for the database and use it with `DB_HOST=` – SiZE Oct 19 '22 at 04:18

1 Answers1

0

Add network

version: '3.8'
services:
  app:
    build:
      context: .
      dockerfile: app.dockerfile
    working_dir: /var/www
    volumes:
      - ./:/var/www
    depends_on:
      - "database"
    networks:
      - app-network
  web:
    build:
      context: .
      dockerfile: web.dockerfile
    working_dir: /var/www
    volumes:
      - ./:/var/www
    depends_on:
      - "app"
      - "database"
    ports:
      - 80:80
    networks:
      - app-network
  database:
    image: mysql
    volumes:
      - dbdata:/var/lib/mysql
    environment:
      MYSQL_DATABASE: news
      MYSQL_ROOT_PASSWORD: password
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_USER: ${DB_USERNAME}
    ports:
      - "3306:3306"
    networks:
      - app-network
  pma:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=database
      - PMA_USER=${DB_USERNAME}
      - PMA_PASSWORD=${DB_PASSWORD}
      - PMA_PORT=${DB_PORT}
    ports:
      - 3400:80
    depends_on:
      - database
    networks:
      - app-network
volumes:
    dbdata:
networks:
  app-network:
      driver: bridge

change laravel .env

DB_HOST=host.docker.internal
  • i have followed the same but still getting error when run 'php artisan migrate' C:\xampp\htdocs\blog\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70 PDO::__construct("mysql:host=host.docker.internal;port=3306;dbname=news", "laravel-user", "laravel-password", []) – MaditionSky Oct 19 '22 at 12:30
  • As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Oct 22 '22 at 01:11