Локальный phpMyAdmin для удаленного mySQL

У меня есть локальный dockerized phpMyadmin и удаленная служба докеров, на которой запущен контейнер mySQL. Порт 3306 не доступен в Интернете, и я использую туннель:

ssh -f user@remotedb -L 3306:127.0.0.1:3306 -N

Используя необработанный клиент mysql, я могу подключиться к службе sql, используя: 127.0.0.1/user/password. phpMyadmin не может до него добраться. Это его конфиг:

pma:
  image: phpmyadmin/phpmyadmin
  container_name: pma
  environment:
    - PMA_ARBITRARY=1
    - 'PMA_ABSOLUTE_URI=https://pma.local/'
    - VIRTUAL_HOST=pma.local
  volumes:
    - './config.user.inc.php:/etc/phpmyadmin/config.user.inc.php'
  restart: always

И настраиваемый файл php:

$cfg['Servers'][$i]['verbose']       = 'Remote Server';
$cfg['Servers'][$i]['host']          = '127.0.0.1';
$cfg['Servers'][$i]['port']          = '3306';
$cfg['Servers'][$i]['connect_type']  = 'tcp';
$cfg['Servers'][$i]['extension']     = 'mysqli';
$cfg['Servers'][$i]['compress']      = FALSE;
$cfg['Servers'][$i]['auth_type']     = 'cookie';
$i++;

Для справки я использую этот образ docker pma: https://github.com/phpmyadmin/docker . Что мне здесь не хватает? Нужны ли мне другие порты? Большое спасибо.


person Jumpa    schedule 26.09.2019    source источник
comment
Вы пробовали это?   -  person johnny243    schedule 26.09.2019


Ответы (1)


проблема в том, что в самом контейнере ничего не прослушивает порт 3306. Порт в любом случае доступен на хосте, поэтому моим быстрым и грязным решением было бы использовать IP-адрес интерфейса docker0 (обычно 172.17.0.1).

Итак, в вашем пользовательском файле pho вы можете использовать что-то вроде этого:

$cfg['Servers'][$i]['host']          = '172.17.0.1';
person Stefano    schedule 26.09.2019
comment
Извините, я не получаю вашего ответа. 127.0.0.1 уже работает с клиентом sql, он говорит, что принимает соединение только с localhost. Как мне это изменить? Вы ссылаетесь на интерфейс docker0 в контейнере mysql? - person Jumpa; 26.09.2019
comment
Вы действительно правы ... последняя часть о туннеле просто неверна. Извините. Я снова исправляю ответ - person Stefano; 26.09.2019