mysql - 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.
请指导我在哪里做错了。
解决方案
如果您不想从容器连接,而是从主机连接 - 那么您需要首先为 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'
推荐阅读
- sql-server - 我可以远程连接到 RDS sql server 实例以支持始终处于高可用性、行级安全功能吗?
- azure - Azure AD B2C - 在注册 v2 流程的 MFA 页面上筛选国家选项列表
- loops - Ansible 循环遍历文件中指定的值
- html - 检查下面的代码以帮助我将我的 gmail 按钮居中
- c++ - 我对这个问题有疑问我的输出不正确
- influxdb - InfluxDB 数据库复制
- android - 在 Android Room 中,有没有办法为多个插入/更新查询只触发一次更改事件?
- java - 来自 Spring Rest API 控制器的意外 JSon 响应
- angular - 如何在材料表中显示 API 响应
- xaml - xamarin 表单:页面变得非常大,我不知道为什么