我刚刚创建了一个LEMP堆栈(Linux、Nginx、MariaDB、PHP-FPM(,由docker和docker组成。但不知怎么的,我无法通过phpMyAdmin访问我的数据库。
当我试图访问phpMyAdmin web服务器时,我得到了以下错误:
MySQL说:文档
无法连接:设置无效。
数据包出现故障。预期0收到1。数据包大小=69
mysqli_real_connect((:读取问候信息包时出错。PID=18
mysqli_real_connect((:(HY000/2006(:MySQL服务器已经离开
phpMyAdmin试图连接到MySQL服务器,但服务器拒绝了连接。您应该检查配置中的主机、用户名和密码,并确保它们与MySQL服务器管理员提供的信息相对应。
其余部分工作正常。
这是我的docker-compose.yml
文件:
version: "3.3"
services:
nougat: #Nginx Server
image: tutum/nginx:latest
ports:
- "8080:80"
links:
- papaya # PHP-FPM service
volumes:
- type: bind
source: ./nginx
target: /etc/nginx/sites-available
- type: bind
source: ./nginx
target: /etc/nginx/sites-enabled
- type: bind
source: ./logs/nginx-error.log
target: /var/log/nginx/error.log
- type: bind
source: ./logs/nginx-access.log
target: /var/log/nginx/access.log
papaya: # PHP-FPM service
build: .
volumes:
- type: bind
source: ./public
target: /usr/share/nginx/html
mango: # MariaDB database
image: mariadb:10.5.1
volumes:
- type: bind
source: ./mango_database
target: /var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: admin
pomegranate: # phpMyAdmin web-service
image: phpmyadmin/phpmyadmin:4.9.4
restart: always
links:
- mango:mysql # MySQL database
ports:
- "8081:80"
environment:
PMA_HOST: mysql
PMA_USER: root
PMA_PASSWORD: admin
PMA_ARBITRARY: 1
这是我的Dockerfile
:
FROM php:7.4.3-fpm
RUN docker-php-ext-install pdo pdo_mysql
RUN apt-get update -y && apt-get install -y libwebp-dev libjpeg62-turbo-dev libpng-dev libxpm-dev
libfreetype6-dev
RUN apt-get update &&
apt-get install -y
zlib1g-dev
RUN apt-get install -y libzip-dev
RUN docker-php-ext-install zip
RUN docker-php-ext-install gd
提前感谢您的帮助。
使用networks
将所有服务连接在一起
docker-compose.yml
version: "3.3"
services:
nougat: #Nginx Server
image: tutum/nginx:latest
ports:
- "8080:80"
networks: # <-- Add this line
- random_name # <-- Add this line
# links: # <-- Remove this
# - papaya # <-- Remove this
volumes:
- type: bind
source: ./nginx
target: /etc/nginx/sites-available
- type: bind
source: ./nginx
target: /etc/nginx/sites-enabled
- type: bind
source: ./logs/nginx-error.log
target: /var/log/nginx/error.log
- type: bind
source: ./logs/nginx-access.log
target: /var/log/nginx/access.log
papaya: # PHP-FPM service
build: .
networks: # <-- Add this line
- random_name # <-- Add this line
volumes:
- type: bind
source: ./public
target: /usr/share/nginx/html
mango: # MariaDB database
image: mariadb:10.5.1
networks: # <-- Add this line
- random_name # <-- Add this line
volumes:
- type: bind
source: ./mango_database
target: /var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: admin
pomegranate: # phpMyAdmin web-service
image: phpmyadmin/phpmyadmin:4.9.4
restart: always
# links: # <-- Remove this
# - mango:mysql # <-- Remove this
ports:
- "8081:80"
networks: # <-- Add this line
- random_name # <-- Add this line
environment:
PMA_HOST: mysql
PMA_USER: root
PMA_PASSWORD: admin
PMA_ARBITRARY: 1
networks: # <-- Add this line
random-name: # <-- Add this line