Docker:在执行Laravel artisan命令时遇到连接拒绝错误
P粉787820396
P粉787820396 2023-08-07 16:24:22
[PHP讨论组]

我在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

全部回复(2)
P粉295728625

把我的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
P粉225961749

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号