我知道这是一个复制的this,但由于这一直没有得到回答,我将重新发布这个问题。
我正在尝试构建php-apache和mysql容器的基本连接。
docker-compose.yml
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
FROM php:7.2-apache
RUN docker-php-ext-install mysqli
我运行一个简单的docker-compose up
命令,并在localhost:8080
上访问Adminer。
但是,尽管使用了默认的登录详细信息,例如
server: db
username: root
password: example
我得到了错误SQLSTATE[HY000] [2002] Connection refused
。
截图:
我认为这个问题可能是我的本地机器上的一些配置问题,因为我不能使用其他人制造的基于码头的灯具堆。
任何帮助都是非常感谢的,
谢谢!
发布于 2021-03-09 08:34:25
结果是耐心才是答案。
如果我等待足够长的时间(大约4.5分钟),mysql容器就会释放出一个小的日志细节。
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容器更快地初始化给我提供反馈或建议,
我会非常感激的。
https://stackoverflow.com/questions/66543057
复制相似问题