【问题标题】:Connect via reverse SSH Mysql in PHP在 PHP 中通过反向 SSH Mysql 连接
【发布时间】:2017-06-19 15:45:28
【问题描述】:

这是我在这里的第一篇文章,希望你能帮助我。

我想做的是通过反向 SSH 连接到公司的远程服务器。

COMPANY $ ssh -R 36060:localhost:22 local@x.x.x.x

然后在本地

LOCAL $ ssh company@localhost -p 36060
LOCAL $ mysql -h 127.0.0.1 -u root -p root

一切都很好,在终端连接正常,我可以看到表格,没问题。

毕竟,在 php 存档中。

<?php
$cnn = mysqli_connect('127.0.0.1','root','root','user_database',33060);
?>

但是当我尝试在浏览器中打开时总是给我一个错误。

Warning: Packets out of order. Expected 0 received 45. Packet size=4739923 in /opt/lampp/htdocs/test.php on line 2
Warning: mysqli_connect(): MySQL server has gone away in /opt/lampp/htdocs/test.php on line 2

我尝试更改“测试服务器”中的配置,在 LOCAL 和 COMPANY 中更改 my.cf 中的 max_allowed_pa​​cket = 128M 但没有任何效果。

如果你有任何想法,请帮助:(

编辑:问题解决了!

服务器 $ ssh -fNT -R 33060:localhost:3306 xxxxxxx@xxxxxxxxx.cl

本地$ mysql -h 127.0.0.1 -P 33060 -u root -p

而且效果很好:D

【问题讨论】:

    标签: php mysqli ssh localhost tunnel


    【解决方案1】:

    这是我连接的 php 脚本。 确保首先将您的 ssh 公钥添加到远程服务器上的授权密钥。

    shell_exec("ssh -f -L 3307:localhost:3306 myuser@myhost sleep 10 >> logfile");
    $DB = new PDO("mysql:host=$servername_local;dbname=$dbname_local;port=3307", $username_local, $password_local);
    $DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    

    【讨论】:

      猜你喜欢
      • 2019-02-06
      • 1970-01-01
      • 2020-08-28
      • 2021-11-01
      • 1970-01-01
      • 2010-10-02
      • 2013-08-06
      相关资源
      最近更新 更多