Skip to content
Advertisement

Can’t connect to localhost mysql

I am trying to get my app working with docker but I am having trouble getting my database to display. It seems my laravel application itself can access it but I need to access it myself in order to troubleshoot issues.

The problem when I try to access localhost:4306 (the port of which the db is on). when I go to that in the browser it outputs:

    J���
5.7.22�
���X5g  ^A�яя�яБ����������8O?x
tdm�mysql_native_password���я„Got packets out of order

The db section of the .env is:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

the docker-compose is:

version: '3.2'

networks:
  laravel:


services:
  nginx:
    image: nginx:stable-alpine
    container_name: nginx
    ports:
      - "8088:80"
    volumes:
      - ./src:/var/www/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php
      - mysql
    networks:
      - laravel

  mysql:
    image: mysql:5.7.22
    container_name: mysql
    restart: unless-stopped
    tty: true
    ports:
      - "4306:3306"
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      MYSQL_DATABASE: homestead
      MYSQL_USER: homestead
      MYSQL_PASSWORD: secret
      MYSQL_ROOT_PASSWORD: secret
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    networks:
      - laravel

  php:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: php
    volumes:
      - ./src:/var/www/html
    ports:
      - "9000:9000"
    networks:
      - laravel

and the Dockerfile referenced in the docker-compose.yml is:

    FROM php:7.4-fpm-alpine
# Setup GD extension
 RUN apk add --no-cache 
       freetype 
       libjpeg-turbo 
       libpng 
       freetype-dev 
       libjpeg-turbo-dev 
       libpng-dev 
     && docker-php-ext-configure gd 
       --with-freetype=/usr/include/ 
#      --with-png=/usr/include/  # No longer necessary as of 7.4; https://github.com/docker-library/php/pull/910#issuecomment-559383597
       --with-jpeg=/usr/include/ 
     && docker-php-ext-install -j$(nproc) gd 
     && docker-php-ext-enable gd 
     && apk del --no-cache 
       freetype-dev 
       libjpeg-turbo-dev 
       libpng-dev 
     && rm -rf /tmp/*
RUN docker-php-ext-install pdo pdo_mysql
RUN chown -R 1000:www-data /var/www/html

Advertisement

Answer

You are trying to connect to database through HTTP protocol, that’s why you are receiving that message.

You can connect to MySql database using phpMyAdmin (web client) or any installed MySql client.

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement