Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用容器化mysql服务设置本地laravel_Mysql_Docker_Laravel 8 - Fatal编程技术网

如何使用容器化mysql服务设置本地laravel

如何使用容器化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=

我知道像这样的问题有很多答案,但我仍然无法连接。 我有一个本地安装的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=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