首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLSTATE[HY000] [2002]连接被拒绝(SQL: select * from information_schema.tables,其中table_schema = ms_api_shop

问SQLSTATE[HY000] [2002]连接被拒绝(SQL: select * from information_schema.tables,其中table_schema = ms_api_shop
EN

Stack Overflow用户
提问于 2021-01-16 07:59:03
回答 3查看 710关注 0票数 0

我使用Lumen来创建简单的API来进行身份验证。在安装LumenPassport之后,我无法迁移数据库。我可以很容易地连接到MySQL数据库与Dbeaver。我已经为同样的目的创建了一个Lumen Docker项目,它是第二个。第一个没有问题。此外,我检查了MySQL数据库,ms_api_shop在那里

错误:

​

这是我的船坞写作

代码语言:javascript
复制
services:
  nginx:
    build:
      context: .
      dockerfile: docker/Nginx.Dockerfile
    image: nginx
    ports:
      - 8092:80
    depends_on:
      - fpm
    volumes:
      - ./:/var/www/lumen-docker
    links:
      - mysql

  fpm:
    build:
      context: .
      dockerfile: docker/fpm.Dockerfile
    volumes:
      - ./:/var/www/lumen-docker
    depends_on:
      - mysql
    links:
      - mysql


  mysql:
    image: mysql:5.7
    ports:
      - 33006:3306
    environment:
      - MYSQL_ROOT_PASSWORD=
      - MYSQL_DATABASE=ms_api_shop
      - MYSQL_ROOT_USER=
    volumes:
      - mysql-data:/var/lib/mysql
volumes:
  mysql-data:

和环境规划署:

代码语言:javascript
复制
DB_HOST=mysql
DB_PORT=33006
DB_DATABASE=ms_api_shop
DB_USERNAME=
DB_PASSWORD=
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-01-16 08:24:11

在您的docker文件中,您将33006容器端口绑定到主机端口的3306。如果您想访问MySQL,您应该像在.env中那样使用3306而不是33006

票数 1
EN

Stack Overflow用户

发布于 2021-01-16 08:27:19

我在Docker中运行了一个Laravel应用程序,我的docker配置的一部分如下所示:

但我个人认为它们应该位于网络中,看看下面docker-compose.yml中的最后两行代码:

代码语言:javascript
复制
mysql:
    image: mysql:5.7.29
    container_name: mysql
    restart: unless-stopped
    tty: true
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: homestead
      MYSQL_USER: homestead
      MYSQL_PASSWORD: secret
      MYSQL_ROOT_PASSWORD: secret
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      - laravel    
票数 0
EN

Stack Overflow用户

发布于 2021-01-16 09:36:36

据我所知,码头集装箱可以在同一个网络上相互通信。你似乎还没有把docker-compose中的这两个码头连接起来。要从容器中获取网络信息,可以使用以下命令。

代码语言:javascript
复制
$ docker inspect --format='{{json .NetworkSettings.Networks}}'  <docker_container_name>

如果您需要连接这两个容器,请执行以下步骤:

首先,创建一个网络。

代码语言:javascript
复制
$ docker network create my-net

第二,将容器连接到网络。

代码语言:javascript
复制
$ docker network connect my-net <docker_container_name>

不要忘记将这两个容器连接到网络上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65747583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档