Я пытаюсь подключиться к контейнеризованной БД MySQL из контейнера PHP, хотя все контейнеры в одной сети, проблема в том, что я получаю Connection failed: invalid data source name
, когда нажимаю http://localhost:8080/dbTest.php
, хотя я проверил правильность учетных данныхи demo DB существует с использованием mysql -u root -p
Я вижу это сообщение в mysql log mbind: Операция не разрешена может быть связано?Спасибо
Apache Dockerfile
FROM httpd:latest
RUN apt-get update
RUN apt-get upgrade
COPY demo.apache.conf /usr/local/apache2/conf/demo.apache.conf
RUN echo "Include /usr/local/apache2/conf/demo.apache.conf" >> /usr/local/apache2/conf/httpd.conf
cmd : Docker Run -P 8080: 80 / tcp -v / home / hmalabeh/ учебное пособие / докер / лампа / файлы /: / usr / local / apache2 / htdocs / --link = php - имя apache - бэкэнд сети -i 8f704f51962d
Dockerfile PHP
FROM php:7.2.7-fpm-alpine3.7
RUN docker-php-ext-install mysqli
RUN docker-php-ext-enable mysqli
RUN docker-php-ext-install pdo pdo_mysql
EXPOSE 9000
cmd : Docker Run -P 9000: 9000 -v / home / hmalabeh / учебник / докер / лампа / файлы /: / var/ www / html / --name php - бэкэнд сети -i 1cc049496b03
MySQL Dockerfile
FROM mysql:latest
RUN apt-get update
RUN apt-get upgrade
ENV MYSQL_ROOT_PASSWORD=root
cmd : запуск докера -p 3306: 3306 -p 33060: 33060 - имя mysql - бэкэнд сети --link = php -i 7bb7d4985301
dbTest.php
<?php
class DBConnect
{
private $dsn = "mysql:dbname=demo;host=127.0.0.1;port=3306;";
private $dbUsername = "root";
private $dbPassword = "root";
private $conn;
public function connect()
{
try {
echo 'Attempt Connection. ';
$this->conn = new PDO($dsn, $dbUsername, $dbPassword);
echo 'Connected successfully. ';
} catch (PDOException $exception) {
echo 'Connection failed: ' . $exception->getMessage();
}
return $this->conn;
}
}
$co = new DBConnect();
$co->connect();
?>
Мои работающие контейнеры
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9639160c0824 8f704f51962d "httpd-foreground" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp apache
38e630a9cb01 7bb7d4985301 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp, 0.0.0.0:33060->33060/tcp mysql
c7f6e8db26a9 1cc049496b03 "docker-php-entrypoi…" 2 hours ago Up 2 hours 0.0.0.0:9000->9000/tcp php