Пытаюсь подключиться к mysql 8 (mysql: latest) из php: latest image (без apache или nginx), и я получаю эту досадную ошибку:
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Connection refused in /src/conn.php:5
Stack trace:
#0 /src/conn.php(5): PDO->__construct('mysql:host=data...', 'root', '12345678')
#1 {main}
thrown in /src/conn.php on line 5
Я искал +20 решений здесь, на stackoverflow, но ни одно из них не смогло решить мою проблему.Я могу без проблем подключиться с помощью MySQL Workbench или DataGrid, используя следующие учетные данные:
сервер: локальный пользователь: root pass: 12345678
Но любая конфигурация, которую я использую наphp image Я не могу связать их друг с другом.
Мой файл docker-compose:
version: '3'
services:
composer:
container_name: composer
networks:
- backend
image: composer
volumes:
- .:/app
command: install
database:
container_name: mysql
networks:
- backend
image: mysql:latest
volumes:
- ./database/mysqldata:/var/lib/mysql
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: 12345678
MYSQL_DATABASE: testdb
ports:
- "3306:3306"
php:
build:
context: .
container_name: php
networks:
- backend
image: php:apache
links:
- database
env_file:
- .env
volumes:
- .:/
command:
php /src/conn.php
depends_on:
- composer
- database
networks:
backend:
Мой conn.php:
<?php
$db = new PDO('mysql:host=database;dbname=testdb', 'root', '12345678');
Что ядо сих пор пытался решить проблему:
- Изменить хост conn.php на 127.0.0.1
- Изменить хост conn.php на localhost
- Пробовал использоватьmysqli (получил также отказано в соединении)
- Пробовал другие php образы (с apache, nginx и т. д.)
- Пробовал использовать mysql в качестве хоста
PS: Я использую Docker для Mac
После 5 часов исследований я действительно не знаю, что еще делать, и, поскольку я не эксперт по докеру, был бы признателен за любую помощь, чтобы указать мнеНаправление исправления.
Спасибо!