Mysql 拒绝在 Docker 上连接到管理员
Mysql refuses Connection to Adminer on Docker
我知道这是 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
上访问管理员。
但是,尽管使用了默认登录详细信息,即
server: db
username: root
password: example
我收到错误 SQLSTATE[HY000] [2002] Connection refused
。
截图:
我认为问题可能是我本地机器上的一些配置问题,因为我也无法使用其他人制作的基于 docker 的 LAMP 堆栈。
非常感谢任何帮助,
谢谢!
原来耐心就是答案。
如果我等待的时间足够长(大约 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 容器初始化更快提供反馈或建议,
非常感谢。
我知道这是 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
上访问管理员。
但是,尽管使用了默认登录详细信息,即
server: db
username: root
password: example
我收到错误 SQLSTATE[HY000] [2002] Connection refused
。
截图:
我认为问题可能是我本地机器上的一些配置问题,因为我也无法使用其他人制作的基于 docker 的 LAMP 堆栈。
非常感谢任何帮助,
谢谢!
原来耐心就是答案。
如果我等待的时间足够长(大约 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 容器初始化更快提供反馈或建议,
非常感谢。