gpt4 book ai didi

docker 上的 Mysql 给出 "Connection refused"错误

转载 作者:行者123 更新时间:2023-12-02 02:21:55 30 4
gpt4 key购买 nike

我使用 docker-compose 创建了我的 Laravel 项目。我在本地创建了一个名为 fhblog 的数据库。当我进入 php 容器并运行 php artisan migrate 命令时,出现以下错误。

SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = fhblog and table_name = migrations and table_type = 'BASE TABLE')

我搜索了问题的解决方案,并按照人们的建议,但无法解决错误。

我的 .env 文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=fhblog
DB_USERNAME=fhblog
DB_PASSWORD=root

我的 mysql 容器

  .
.
.
db:
image: mysql:5.7.22
container_name: mysql
restart: unless-stopped
tty: true
ports:
- "3306:3306"
environment:
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: fhblog
MYSQL_USER: fhblog
MYSQL_PASSWORD: root
SERVICE_TAGS: dev
SERVICE_NAME: mysql
volumes:
- ./docker/mysql/db:/var/lib/mysql
- ./docker/mysql/my.cnf:/etc/mysql/my.cnf
networks:
- app-network
.
.
.

在我的研究中,建议运行 php artisan cache:clearphp artisan config:clear 命令,因为它们可以保留在“缓存”中。这些命令也没有解决我的问题。哪里出错了?

最佳答案

我觉得你应该用mysql的内部ip代替容器名;登录到 mysql 容器并运行 bash然后输入ifconfig可能你的 ip 地址是这样的

172.0.0.23

复制粘贴到前面

DB_HOST=

但首先尝试使用容器名称作为您的

DB_HOST=mysql

甚至重命名为 mysql 以外的名称

例如mysql_container

container_name: mysql_container
...
DB_HOST=mysql_container

关于docker 上的 Mysql 给出 "Connection refused"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66289342/

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