【问题标题】:Mysql on docker gives "Connection refused" errordocker上的Mysql给出“连接被拒绝”错误
【发布时间】:2021-05-23 03:20:52
【问题描述】:

我使用 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 laravel docker-compose laravel-8 connection-refused


【解决方案1】:

我之前试过我的mysql IP。当我在 DBeaver 上收到连接被拒绝错误时,它给了我一个 IP 地址 17.23.0.1。我以为这是我的 mysql IP 并以这种方式尝试过。我想查看我的容器 IP 并尝试了以下命令。出来的IP不一样。有了这个IP,我终于可以运行php artisan migrate代码了。

docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

后来我意识到这是不必要的。如果我直接给出容器名称,我的问题处理得更整齐。

DB_HOST=db

【讨论】:

    【解决方案2】:

    我认为你应该使用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
    

    【讨论】:

    • 您的第一个回答帮助解决了我的问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-07-04
    • 2020-10-07
    • 2018-06-08
    • 2020-01-19
    • 2017-09-08
    • 2021-06-01
    • 2019-07-27
    • 1970-01-01
    相关资源
    最近更新 更多