首页 > 解决方案 > Laravel 与 docker mysql 的连接

问题描述

我正在将我的 Laravel 应用程序与docker-composer.yml

我通过 CLI 提取 MySQL 映像和 PHPMyAdmin 映像,并将 MySQL 和 PHPMyAdmin 连接到同一网络中的容器中,并且我正在尝试在 localhost 中连接我的 Laravel 应用程序。

Laravel 环境:

'DB_CONNECTION=mysql'
'DB_HOST=mysql'
'DB_PORT=3306'
'DB_DATABASE=select_elect'
'DB_USERNAME=root
'DB_PASSWORD=root'

容器信息:

在此处输入图像描述

错误:

php_network_getaddresses: getaddrinfo failed: No such host is known.  

请指导我在哪里做错了。

标签: mysqllaraveldocker

解决方案


如果您不想从容器连接,而是从主机连接 - 那么您需要首先为 MySQL 服务添加 docker-compose:

ports:
  - "3306:3306"

例如

version: '3.7'
services:
  db:
    restart: unless-stopped
    image: mysql:latest
    ports:
      - "3306:3306"

命令行界面:

docker run -p 3306:3306 mysql:latest

这将使 MySQL 服务和端口可以从 docker 网络外部访问。

但是,如果您尝试从同一个 docker 网络内部连接,请检查您的服务是否有 name mysql,因为您使用值:'DB_HOST=mysql'


推荐阅读