【问题标题】:Local phpMyAdmin to remote mySQL本地 phpMyAdmin 到远程 mySQL
【发布时间】:2020-01-26 23:34:51
【问题描述】:

我有一个本地 dockerized phpMyadmin 和一个运行 mySQL 容器的远程 docker 服务。 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。我在这里想念什么?我需要其他端口吗?非常感谢。

【问题讨论】:

  • 你试过this吗?

标签: mysql docker phpmyadmin ssh-tunnel


【解决方案1】:

问题是容器本身没有监听端口 3306。该端口在主机上仍然可用,所以我的快速和肮脏的解决方案是使用 docker0 接口的 IP(通常是 @987654321 @)。

因此,在您的自定义 pho 文件中,您可能希望使用如下内容:

$cfg['Servers'][$i]['host']          = '172.17.0.1';

【讨论】:

  • 抱歉,我没有得到您的答复。 127.0.0.1 已经在使用 sql 客户端,它说只接受来自“localhost”的连接。我应该如何改变它?你是在引用mysql容器上的docker0接口吗?
  • 您实际上是对的……关于隧道的最后一部分完全是错误的。对不起。我再次修复答案
猜你喜欢
  • 2013-01-17
  • 2017-12-24
  • 1970-01-01
  • 1970-01-01
  • 2015-08-05
  • 2017-10-04
  • 2015-06-23
  • 2013-02-06
  • 2018-08-15
相关资源
最近更新 更多