skip to Main Content

when I ran php artisan migrate this results to (see screenshot below)

enter image description here

I tried doing

  • composer dump-autoload -o
  • php artisan cache:clear php artisan config:clear php artisan route:clear
  • then tried php artisan migrate again

but nothing happens. mysql-1 container is perfectly running on docker. For reference, this is my .env
enter image description here

I also tried removing the quote on username and password, also tried this

DB_DATABASE=forge
DB_USERNAME=homestead
DB_PASSWORD=secret

but still having the same error.

Also, for reference this is my docker-compose.yml

# For more information: https://laravel.com/docs/sail
version: '3'
services:
    laravel.test:
        build:
            context: ./docker/8.0
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: sail-8.0/app
        extra_hosts:
            - 'host.docker.internal:host-gateway'
        ports:
            - '${APP_PORT:-80}:80'
            - '8000:80'
        environment:
            WWWUSER: '${WWWUSER}'
            LARAVEL_SAIL: 1
            XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
            XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
        volumes:
            - '.:/var/www/html'
        networks:
            - sail
        depends_on:
            - mysql
            - redis
            - minio
    mysql:
        image: 'mysql/mysql-server:5.7.16'
        ports:
            - '${FORWARD_DB_PORT:-3306}:3306'
        environment:
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ROOT_HOST: "%"
            MYSQL_DATABASE: '${DB_DATABASE}'
            MYSQL_USER: '${DB_USERNAME}'
            MYSQL_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ALLOW_EMPTY_PASSWORD: 1
        volumes:
            - 'sail-mysql:/var/lib/mysql'
        networks:
            - sail
        healthcheck:
            test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
            retries: 3
            timeout: 5s
    redis:
        image: 'redis:alpine'
        ports:
            - '${FORWARD_REDIS_PORT:-6379}:6379'
        volumes:
            - 'sail-redis:/data'
        networks:
            - sail
        healthcheck:
            test: ["CMD", "redis-cli", "ping"]
            retries: 3
            timeout: 5s
    minio:
        image: 'minio/minio:latest'
        ports:
            - '${FORWARD_MINIO_PORT:-9000}:9000'
            - '${FORWARD_MINIO_CONSOLE_PORT:-8900}:8900'
        environment:
            MINIO_ROOT_USER: 'sail'
            MINIO_ROOT_PASSWORD: 'password'
        volumes:
            - 'sail-minio:/data/minio'
        networks:
            - sail
        command: minio server /data/minio --console-address ":8900"
        healthcheck:
            test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
            retries: 3
            timeout: 5s
    mailhog:
        image: 'mailhog/mailhog:latest'
        ports:
            - '${FORWARD_MAILHOG_PORT:-1025}:1025'
            - '${FORWARD_MAILHOG_DASHBOARD_PORT:-8025}:8025'
        networks:
            - sail
networks:
    sail:
        driver: bridge
volumes:
    sail-mysql:
        driver: local
    sail-redis:
        driver: local
    sail-minio:
        driver: local

2

Answers


  1. Try using the DB hostname in your .env file as the name of the mysql container.
    i.e. if the name of databse container is xyz-db-1
    use DB_HOST=xyz-db-1

    Login or Signup to reply.
  2. A connection to the user "homestead" may not be allowed from this IP address. You can check which host is set to that particular user by connecting to your mysql server and running query select Host,User from mysql.user.
    If that IP address is not in the host column, you can try alternating your user to allow connections from any IP address using:

    ALTER USER 'homestead'@'%' IDENTIFIED BY 'your_password'

    or if you want to allow connections only from that IP address use:

    ALTER USER 'homestead'@'172.21.0.1' IDENTIFIED BY 'your_password'
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search