无法连接到本地主机mysql

时间:2020-11-11 10:40:53

标签: php mysql laravel

我正在尝试使我的应用程序与docker一起使用,但是我无法显示数据库。看来我的laravel应用程序本身可以访问它,但我需要自己访问它才能解决问题。

当我尝试访问localhost:4306(数据库所在的端口)时出现问题。当我在浏览器中转到它时,输出:

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

.env的db部分是:

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

docker-compose是:

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

,并且docker-compose.yml中引用的Dockerfile是:

    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

1 个答案:

答案 0 :(得分:1)

您正试图通过HTTP协议连接到数据库,这就是为什么您收到该消息的原因。

您可以使用phpMyAdmin(Web客户端)或任何已安装的MySql客户端连接到MySql数据库。