首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql拒绝连接Docker上的Adminer

Mysql拒绝连接Docker上的Adminer
EN

Stack Overflow用户
提问于 2021-03-09 08:12:24
回答 1查看 2.3K关注 0票数 2

我知道这是一个复制的this,但由于这一直没有得到回答,我将重新发布这个问题。

我正在尝试构建php-apache和mysql容器的基本连接。

docker-compose.yml

代码语言:javascript
运行
复制
version: '3.1'

services: 
  php:
    build: 
      context: .
      dockerfile: Dockerfile
    ports: 
      - 80:80
    volumes: 
      - ./src:/var/www/html
  
  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    # Exposing the ports doesn't help either
    # ports:
    #   - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: example

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

Dockerfile

代码语言:javascript
运行
复制
FROM php:7.2-apache
RUN docker-php-ext-install mysqli

我运行一个简单的docker-compose up命令,并在localhost:8080上访问Adminer。

但是,尽管使用了默认的登录详细信息,例如

代码语言:javascript
运行
复制
server: db  
username: root
password: example

我得到了错误SQLSTATE[HY000] [2002] Connection refused

截图:

我认为这个问题可能是我的本地机器上的一些配置问题,因为我不能使用其他人制造的基于码头的灯具堆。

任何帮助都是非常感谢的,

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-09 08:34:25

结果是耐心才是答案。

如果我等待足够长的时间(大约4.5分钟),mysql容器就会释放出一个小的日志细节。

代码语言:javascript
运行
复制
db_1       | 2021-03-09T08:21:03.882088Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.23'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.

在此之后,登录就能工作了。

注意:有一个类似的行记录,但这是关于端口0,这是3306。在那之后立即尝试失败失败。

必须等待端口3306的线路。

如果你们中的任何人能就如何使mysql容器更快地初始化给我提供反馈或建议,

我会非常感激的。

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

https://stackoverflow.com/questions/66543057

复制
相关文章

相似问题

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