Туннель phpMyAdmin к mySQL

Как я могу подключить локальный phpMyAdmin через туннель SSH к удаленному dockerized контейнеру mySQL (example.com)? Это локальный phpMyadmin в docker compose:

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

Это настраиваемая конфигурация для PMA:

$cfg['Servers'][$i]['verbose']       = 'Localhost';
$cfg['Servers'][$i]['host']          = 'localhost';
$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++;

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

Использование Core Tunnel Я установил это на моем локальном компьютере:

Port forwarding Это мой тестовый контейнер на example.com:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest

Теперь, если я введу в PMA следующее (после включения туннеля):

Server: 127.0.0.1
User: root
Password: my-secret-pw

я получаю:

mysqli_real_connect(): (HY000/2002): Connection refused

Я действительно новичок в этом и, конечно, делаю что-то очень плохое. Не могли бы вы дать мне несколько советов? Заранее большое спасибо.

0
задан 26 September 2019 в 14:19
1 ответ

Докер создает внутреннюю сеть, в которой он, возможно, лжет Mysql, введите «ifconfig» и «netstat -lptn» для просмотра данных сервера.

Попробуйте запустить докер с помощью «--network host» "и предположим, что это локальный IP-адрес, mysql экземпляра будет прослушивать 127.0.0.1 или какой-либо другой IP-адрес вашего" физического "сервера.

Другой вариант - указать докеру выполнять PAT и NAT с такой опцией

-p 127.0.0.1:3107:3106

Итак, вы говорите ему, что все запросы, поступающие на все интерфейсы 127.0.0.1, поступают в экземпляр докера: 3106

1
ответ дан 4 December 2019 в 15:37

Теги

Похожие вопросы