для двух моих контейнеров:
Контейнер 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' (используется пароль: НЕТ)