gpt4 book ai didi

mysql - SQLSTATE[HY000] [2002] 连接被拒绝。使用 WSL2 Ubuntu 18.04 托管在 Docker 上的 Laravel API

转载 作者:行者123 更新时间:2023-12-02 19:47:01 27 4
gpt4 key购买 nike

我正在尝试通过 postman 为我在 docker 中运行的 laravel 应用程序创建一个新项目。 docker 容器是通过提供开发环境的 ddev 自动生成的,并使用 WSL2 Ubuntu 18.04 运行。所以这里有一个问题,我可以很好地“php artisan migrate”我什至可以“php artisan tinker”并创建一个很好但是当从我的主机通过 postman 发送请求时我收到这个错误。

Illuminate\Database\QueryException: SQLSTATE[HY000] [2002] Connection refused (SQL: select count(*) as aggregate from users where id = 1) in file /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 671

我昨天用这个 https://www.craigforrester.com/posts/windows-subsystem-for-linux-disable-ipv6-for-apt/ 解决了这个问题但是当我今天再次遇到这个错误时试了一下,但运气不好。

我尝试过的事情:

我的想法:我 99% 确定这不是凭据问题,更确切地说是路由问题,因为就像我在第一段中所说的那样,我可以从 WSL Ubuntu 迁移和创建。我认为路由问题要么是从我的主机到 WSL,要么是从 WSL 到 mysql。但是话又说回来,我的请求似乎正在通过,否则我会遇到某种 PHP 连接错误,而不是 MySQL 连接错误

最佳答案

不久前我遇到了这个问题,结果我必须将 DB_HOST 设置为 docker mysql 容器的名称:-

docker-compose.yml:-

version: '3.1'

services:
php:
build:
context: .
dockerfile: .docker/Dockerfile
image: larastock
ports:
- 8000:80
restart: always
volumes:
- .:/var/www/html
networks:
- larastock
mysql:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
restart: always
ports:
- 3306:3306
environment:
MYSQL_DATABASE: larastock
MYSQL_USER: root
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: password
networks:
- larastock
phpmyadmin:
depends_on:
- mysql
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8001:80
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD: password
networks:
- larastock
networks:
larastock:
volumes:
db_data:

.env:-

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=larastock
DB_USERNAME=root
DB_PASSWORD=password

关于mysql - SQLSTATE[HY000] [2002] 连接被拒绝。使用 WSL2 Ubuntu 18.04 托管在 Docker 上的 Laravel API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63044191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com