【发布时间】:2020-02-22 18:15:42
【问题描述】:
MySQL 连接在通过机器访问应用程序时有效(API 端点能够使用 MySQL),但在从 PHPUnit(本地)访问它时则无效。
我通过 TCP 套接字 tcp://localhost:2375 将 PhpStorm 连接到 Docker
这是docker ps 执行后得到的结果:0.0:8083->3306/tcp mysql
这是我设置 CLI 解释器的方法:
这是我设置 PHPUnit 的方法:
我仔细检查了我的.env:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=databasename
DB_USERNAME=databaseuser
DB_PASSWORD=123456
还仔细检查了我的docker.compose.yml:
mysql:
image: mysql
container_name: mysql
working_dir: /application
volumes:
- .:/application
- ./storage-db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=databasename
- MYSQL_USER=databaseuser
- MYSQL_PASSWORD=123456
ports:
- "8083:3306"
此外,我还阅读了this article 以及与此错误相关的每个 StackOverflow 问题。然而,在测试中尝试User::all() 后我仍然得到它
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No address associated with hostname
这是我的项目结构的样子:
dockerProject
/docker/
/nginx/
nginx.conf
/php-fpm/
Dockerfile
/server/ (<--Laravel project)
docker-compose.yml
我很沮丧,我还能做些什么来让它发挥作用?
更新
这是整个docker-compose.yml 文件:
version: "3.1"
services:
mysql:
image: mysql
container_name: mysql
working_dir: /application
volumes:
- .:/application
- ./storage-db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=databasename
- MYSQL_USER=databaseuser
- MYSQL_PASSWORD=123456
ports:
- "8083:3306"
webserver:
image: nginx:alpine
container_name: webserver
working_dir: /application
volumes:
- .:/application
- ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8081:80"
php-fpm:
build: docker/php-fpm
container_name: php-fpm
working_dir: /application
volumes:
- ./server:/application
# - .:/application
- ./docker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini
【问题讨论】:
-
你能把整个 docker-compose 文件贴出来
-
是的,我做到了,先生
-
我认为您可能需要将您的
mysql作为webserver的依赖项 .. 所以当 PhpStorm 启动该容器时,它也会启动 DB 一个。例如。看到这些线程:1)intellij-support.jetbrains.com/hc/en-us/community/posts/… 2)intellij-support.jetbrains.com/hc/en-us/community/posts/… -
intellij-support.jetbrains.com/hc/en-us/community/posts/… 她是我的解决方案。我找到 docker-compose 网络名称并将其设置为截图phpstorm phpunit docker settings
-
有什么更新吗? @LizardDerad
标签: mysql windows docker phpunit phpstorm