сбой соединения между двумя связанными контейнерами: apache2 / php & mysql - PullRequest
0 голосов
/ 30 марта 2020

для двух моих контейнеров:

Контейнер 1:

        - name: boxoffice
        - containerPort : 80
        - hostPort: 3030
        - service installed : apache2 and php

команда запуска контейнера 1:

docker run  --name=boxoffice -p 3030:80 -v /Users/mac/Desktop/storage-web:/var/www/app -d  --link=db medoneapache:latest

Контейнер 2:

        - name: db
        - containerPort : 3306
        - hostPort: 3306
        - service installed : mysql

команда запуска контейнера 2:

docker run --name=db -p 3306:3306   -v /Users/mac/Desktop/storage-db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=medone -d  mysqlmedone:1.0

я связал первый контейнер "boxoffice" со вторым контейнером "db" через --link = db

и создал php файл для проверки соединения mysql с базой данных: profil

connection- php - mysql. php (/ var / www/app) в контейнере "boxoffice":

<?php
$servername = "db";
$username = "root";
$password = "medone";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Вот ошибка, которую я получил:

Предупреждение: mysqli_connect (): сервер запросил неизвестный клиенту метод аутентификации [caching_sha2_password] в / var / www/app/index.php on строка 7

Предупреждение: mysqli_connect (): (HY000 / 2054): сервер запросил неизвестный клиенту метод аутентификации в / var / www/app/index.php в строке 7 Ошибка подключения: сервер запрошенный метод аутентификации неизвестен клиенту

Я проверил первый контейнер, чтобы получить IP-адрес хоста: 1 72.17.0.2 и заменил его на db в качестве servername, но я получил ту же ошибку

и не могу получить имя пользователя как root, получая ошибку:

mysql -u root

ОШИБКА 1045 (28000): доступ запрещен для пользователя 'root' @ 'localhost' (используется пароль: НЕТ)

1 Ответ

2 голосов
/ 30 марта 2020

Необходимо обновить до PHP 7.4.4.

Поддержка caching_sha2_password была добавлена ​​как в mysqli, так и в PDO только в PHP 7.4.4.

Соответствующий запрос функции: https://bugs.php.net/bug.php?id=79275
GitHub PR: https://github.com/php/php-src/pull/5210

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...