首页 > 数据库 > mysql教程 > 如何在 PHP 中通过 SSH 隧道安全连接到远程 MySQL 服务器?

如何在 PHP 中通过 SSH 隧道安全连接到远程 MySQL 服务器?

Patricia Arquette
发布: 2024-11-29 03:33:14
原创
316 人浏览过

How to Securely Connect to a Remote MySQL Server via SSH Tunnel in PHP?

使用 PHP 通过 SSH 安全连接到 MySQL 服务器

通过 SSH 连接到远程 MySQL 服务器通过加密连接提供了额外的安全性。在 PHP 中,mysqli_connect() 函数可以连接到 SSH 隧道的 MySQL 服务器。然而,当尝试使用 ssh2_tunnel() 建立连接时,开发人员经常会遇到错误“mysqli_connect()期望参数 6 为字符串,给定资源。”

SSH 隧道配置

解决此问题的推荐方法是设置 SSH 隧道。按照以下步骤使用命令行工具创建 SSH 隧道:

  1. 打开 SSH 客户端: 打开您首选的 SSH 客户端(例如 PuTTY)并建立与远程的连接Linux 机器。
  2. 创建 SSH 隧道: 输入以下命令以创建隧道将本地工作站端口(例如 3307)连接到 MySQL 服务器的远程 IP 地址和端口(例如 10.3.1.55:3306):
ssh -fNg -L 3307:10.3.1.55:3306 username@ssh-jumpbox.com
登录后复制
  1. 配置 SSH 服务器: 如有必要,通过编辑以下内容来配置 SSH 服务器以允许本地端口转发/etc/ssh/sshd_config 文件并添加以下行:
AllowTcpForwarding yes
登录后复制
  1. 重新启动 SSH 服务器: 重新启动 SSH 服务器以应用更改:
sudo systemctl restart sshd
登录后复制

PHP连接

SSH 隧道建立后,您可以使用 PHP 连接到 MySQL 服务器:

$mysqli = new mysqli('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 'dbname', 3307);

if ($mysqli->connect_error) {
  die('Connect Error (' . $mysqli->connect_errno . ') '
      . $mysqli->connect_error);
}
登录后复制

此代码连接到托管在 127.0.0.1:3307 的 MySQL 数据库,使用指定的数据库用户名、密码、数据库名称以及为 SSH 隧道配置的端口号。

以上是如何在 PHP 中通过 SSH 隧道安全连接到远程 MySQL 服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板