gpt4 book ai didi

php - 在 PHP 中通过 SSH 连接到 MySQL 服务器

转载 作者:IT老高 更新时间:2023-10-28 23:52:34 28 4
gpt4 key购买 nike

我想建立一个通过 ssh 到我的 mysql 服务器的 ssh 隧道。

理想情况下,我会返回一个 mysqli 数据库指针,就像我直接连接一样。

我在一个没有 SSH2 的共享主机上库,但我也许可以使用 PECL 在本地安装它们。

如果有一种方法可以使用 native 命令,那就太好了。

我在想这样的事情,但是如果没有这些库,它将无法工作。

$connection = ssh2_connect('SERVER IP', 22); 

ssh2_auth_password($connection, 'username', 'password');

$tunnel = ssh2_tunnel($connection, 'DESTINATION IP', 3307);

$db = new mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD',
'dbname', 3307, $tunnel)
or die ('Fail: ' . mysql_error());

有人有什么想法吗?我在liquidweb 上运行一个共享的CentOS linux 主机。

关于使隧道持久化的任何想法?是否可以用另一个脚本建立它并在 PHP 中利用它?

谢谢。

最佳答案

我会使用 autossh用于创建到 mysql 数据库的持久 ssh 隧道的工具。然后,您在 PHP 代码中所要做的就是将其指向本地主机。

您可以通过执行以下操作来测试它(无需自动重启):

ssh -L 3306:localhost:3306 user@domain.com

设置一个 ssh key ,这样你就不需要使用密码,并调整 mysql 系统上的 .ssh/authorized_keys 文件,只允许它用于端口转发。

有关 ssh 技巧的更多信息,请参阅 Brian Hatch's关于 SSH 和端口转发的优秀系列。

关于php - 在 PHP 中通过 SSH 连接到 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/309615/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com