本地phpMyAdmin到远程mySQL

问题描述 投票:0回答:1

我有一个本地dockerized phpMyadmin和一个运行mySQL容器的远程docker服务。端口3306未在Internet上公开,我正在使用隧道:

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。我在这里想念什么?我需要其他端口吗?非常感谢。

mysql docker phpmyadmin ssh-tunnel
1个回答
0
投票

问题是,在容器本身上,端口3306上没有监听。该端口在主机上仍然可用,因此我的快速解决方案是使用docker0接口的IP(通常为172.17.0.1 )。

因此,在您的自定义pho文件中,您可能需要使用以下内容:

$cfg['Servers'][$i]['host']          = '172.17.0.1';
© www.soinside.com 2019 - 2024. All rights reserved.