首页 > 社区问答列表 >Docker:在执行Laravel artisan命令时遇到连接拒绝错误

  Docker:在执行Laravel artisan命令时遇到连接拒绝错误

我在Docker中运行Laravel 5.4。这是我的码头作曲。yml文件:

version: '2'

services:
  app:
    container_name: laravel_app
    image: webdevops/php-apache-dev:ubuntu-16.04
    links:
      - mysql
    depends_on:
      - mysql
    ports:
      - 8888:80
    volumes:
      - .:/app
    environment:
      docker: 'true'
      WEB_DOCUMENT_ROOT: '/app/public'
      WEB_NO_CACHE_PATTERN: '.(.*)$$'
      working_dir: '/app'
  mysql:
    image: mariadb:latest
    ports:
      - 8889:80
    environment:
      MYSQL_ROOT_PASSWORD: 'dev'
      MYSQL_DATABASE: 'dev'
      MYSQL_USER: 'dev'
      MYSQL_PASSWORD: 'dev'

This is the relevant part of my .env file:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=8889
DB_DATABASE=dev
DB_USERNAME=dev
DB_PASSWORD=dev

我可以看到Laravel的欢迎页面——这方面的工作。但是当我运行php artisan migrate时,我得到了这个错误:

SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = dev and table_name = migrations)

我试过修改.env文件中的主机和端口参数。

P粉787820396
P粉787820396

  • P粉295728625
  • P粉295728625     2023-08-08 13:47:57 2楼

    把我的mysql容器的名字而不是127.0.0.1

    NAME CONTAINERS
    
    project-db --> container mysql
    project-app --> container laravel
    
    DB_CONNECTION=mysql
    DB_HOST=project-db
    DB_PORT=3306
    DB_DATABASE=project
    DB_USERNAME=root
    DB_PASSWORD=root

    +0 添加回复

  • P粉225961749
  • P粉225961749   已被采纳   2023-08-08 12:59:00 1楼

    首先,编辑您的docker-compose.yml文件

    mysql:
        image: mariadb:latest
        ports:
          - 8889:3306

    然后,在.env文件中设置正确的数据库端口

    你的数据库端口是错误的。你正在尝试通过docker内运行的数据库实例连接暴露的端口。在这种情况下,你应该在.env文件中使用DB_PORT=3306

    +0 添加回复