2016 07 11 phpMyAdmin 通过 ssh 连接远程 MySQL 服务器 - huyx/1 GitHub Wiki

起因

在一台服务器上安装了 phpMyAdmin,希望管理到另外的服务器上的 MySQL,但远程服务器仅支持 localhost 连接,而 phpMyAdmin 不支持 ssh 隧道连接。

方案

配合 ssh 的隧道功能实现 phpMyAdmin 管理远程服务器上的 MySQL。

  • 远程服务器地址为: 192.168.1.101,用户名为 testuser
  • MySQL 服务端口为 3306
  • ssh 隧道的本地监听端口为 13306

建立隧道:

ssh -N -L 127.0.0.1:13306:192.168.1.101:3306 [email protected]

配置 phpMyAdmin,修改 config.inc.php。

遇到的问题和解决方法

配置完成,启动 ssh 隧道,用 nc 测试:

nc localhost 13306

出现错误:

Host 'xxxxxxxx' is not allowed to connect to this MariaDB server

解决方法:在 MySQL 中添加用户,允许 xxxxxxxx 访问 MySQL,然后执行:

MariaDB> FLUSH PRIVILEGES;

参考