如何使用容器化mysql服务设置本地laravel
我知道像这样的问题有很多答案,但我仍然无法连接。 我有一个本地安装的Laravel8和一个运行mysql的docker容器。我能够访问并管理容器,但运行migrate时得到“SQLSTATE[HY000][2002]php\u network\u getaddresses:getaddrinfo failed:Name或service未知”。一些建议会很好,谢谢 My.env:如何使用容器化mysql服务设置本地laravel,mysql,docker,laravel-8,Mysql,Docker,Laravel 8,我知道像这样的问题有很多答案,但我仍然无法连接。 我有一个本地安装的Laravel8和一个运行mysql的docker容器。我能够访问并管理容器,但运行migrate时得到“SQLSTATE[HY000][2002]php\u network\u getaddresses:getaddrinfo failed:Name或service未知”。一些建议会很好,谢谢 My.env: DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=birdboard
DB_USERNAME=pedro
DB_PASSWORD=123456
我的docker-compose.yml
version: "3.5"
services:
mysql:
build: phpdocker/mysql57
container_name: mysql
ports:
- "3306:3306"
expose:
# Opens port 3306 on the container
- "3306"
# Where our data will be persisted
volumes:
- mysql:/var/lib/mysql
# Names our volume
volumes:
mysql:
也许你的.env文件错了
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=birdboard
DB_USERNAME=pedro
DB_PASSWORD=123456
如果应用程序不在容器中,则需要连接到主机的DNS名称(或
localhost
,如果它与容器位于同一系统上)和第一个端口:
编号。您可以删除expose:
(它根本不起任何作用)和container\u name:
(Compose提供了一个合理的默认值)。Ty David,它成功了。为了记录,在Laravel中,对于localhost
或/etc/host add行127.0.0.1 mysql,DNS名称应该是127.0.0.1