【发布时间】:2020-11-12 14:03:02
【问题描述】:
我正在尝试通过邮递员为我在 docker 中运行的 laravel 应用程序创建一个新项目。 docker 容器是通过 ddev 自动生成的,它提供了一个开发环境并使用 WSL2 Ubuntu 18.04 运行。所以这里有一个问题,我可以“php artisan migrate”就好了,我什至可以“php artisan tinker”创建一个就好了,但是当从我的主机通过邮递员发送请求时,我得到了这个错误。
Illuminate\Database\QueryException: SQLSTATE[HY000] [2002] Connection denied (SQL: select count(*) as aggregate from
userswhereid= 1) in file /var/www/html/vendor/ laravel/framework/src/Illuminate/Database/Connection.php 在第 671 行
我昨天用这个https://www.craigforrester.com/posts/windows-subsystem-for-linux-disable-ipv6-for-apt/ 解决了这个问题,但是当我今天再次遇到这个错误并且没有运气时尝试了它。
我尝试过的事情:
- 将 DB_HOST 设置为 127.0.0.1、wsl_ip、docker_gateway_ip、docker_mysql_ip、localhost、mysql。实际上,除了 localhost,我在所有这些上都遇到了相同的错误,这是有道理的。
- 强制 ipv4 https://www.craigforrester.com/posts/windows-subsystem-for-linux-disable-ipv6-for-apt/
- 更改 gai.conf 设置https://www.reddit.com/r/bashonubuntuonwindows/comments/7u1le5/disable_ipv6_or_prefer_ipv4_first/
- 更改 grub 配置 https://askubuntu.com/questions/1046057/disabling-ipv6-in-ubuntu-server-18-04
我的想法: 我 99% 确定这不是凭据问题,更多的是路由问题,因为就像我在第一段中所说的那样,我可以从 WSL Ubuntu 迁移和创建。我认为路由问题要么是从我的主机到 WSL,要么是从 WSL 到 mysql。但话又说回来,我的请求似乎正在通过,否则我会遇到某种 PHP 连接错误,而不是 MySQL 连接错误
【问题讨论】:
标签: mysql laravel docker ubuntu windows-subsystem-for-linux