通过PHP中的SSH连接到MySQL服务器?mysql-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

通过PHP中的SSH连接到MySQL服务器?mysql

2020-05-17 17:20:45 886 1

我的数据库位于远程Linux机器上,我想使用SSH和PHP函数进行连接(我目前正在使用ssh2库)。我尝试使用mysql_connect,但是当我尝试使用此函数时,它使我无法访问(尽管我已授予权限):

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

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

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

$db = mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 'dbname', 3307, $tunnel) or die ('Fail: '.mysql_error()); 我收到错误消息“ mysqli_connect()期望参数6为字符串,给定资源”。我该如何解决?

取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-05-17 17:22:24

    SSH隧道解决方案 设置到MySQL数据库服务器的SSH隧道(最好是通过Jumpbox以获得安全性)。

    (A)GUI工具 根据您的要求,您可以使用具有内置SSH隧道支持的GUI MySQL客户端(例如SequelPro),使用Visual Studio代码 转发端口/创建SSH隧道或使用PuTTY设置端口转发。

    有一个名为Secure Pipes的macOS GUI ssh隧道工具,您可能也会发现它很有用。

    (B)命令行 步骤1。

    ssh -fNg -L 3307:10.3.1.55:3306 username@ssh-jumpbox.com 这里的关键是'-L'开关,它告诉ssh我们正在请求本地端口转发。我选择使用上面的端口3307。现在,本地计算机上定向到该端口的所有流量都将通过我的ssh客户端 “端口转发” 到在address主机上运行的ssh服务器ssh-jumpbox.com。10.3.1.55:3306在这种情况下,Jumpbox ssh服务器将代表您解密流量并建立与MySQL数据库服务器的网络连接。MySQL数据库服务器会看到来自Jumpbox内部网络地址的连接。

    本地端口转发语法 语法有些棘手,但可以将其视为:

    <local_workstation_port>:<database_server_addr_remote_end_of_tunnel>:<database_server_port_remote_end> username@ssh_proxy_host.com 如果您对其他开关感兴趣,它们是:

    -f(转到后台) -N(不执行远程命令) -g(允许远程主机连接到本地转发的端口)

    私钥身份验证,在上面添加(-i)开关:

    -i /路径/到/私钥

    第2步。

    告诉您的本地MySQL客户端通过您机器上的本地端口3307(-h 127.0.0.1)通过SSH隧道进行连接,该端口现在将通过您在步骤1中建立的SSH隧道转发发送给它的所有流量。

    mysql -h 127.0.0.1 -P 3307 -u dbuser -p passphrase

    现在,客户端和服务器之间的数据交换是通过加密的SSH连接发送的,并且是安全的。

    注意: 我不建议直接通过隧道传输到您的数据库服务器-使数据库服务器可以直接从Internet访问是巨大的安全责任。将隧道目标地址设为Jumpbox / Bastion主机的Internet地址(请参阅步骤1中的示例),并将数据库目标为远程网络上数据库服务器的内部 IP地址。SSH将完成其余的工作。

    第三步

    现在,使用以下命令连接您的PHP应用程序:

    来源:stack overflow
    0 0
相关问答

2

回答

服务器的网站经常这样崩溃,遇到很多次了,重新启动服务器之后不久,又是这样子崩溃了

2017-01-17 15:52:44 2398浏览量 回答数 2

1

回答

网站访问报504错误FTP,终端ssh都连接不上服务器

2017-01-15 22:04:35 3933浏览量 回答数 1

13

回答

4分钟,教你使用phpStudy在一个服务器上挂载多个网站

2017-01-14 16:24:16 20047浏览量 回答数 13

3

回答

下面哪种服务器方案网站速度快?

2017-01-14 13:29:24 2002浏览量 回答数 3

1

回答

买的香港服务器,但想要存放不只一个网站,怎样确定内存是否足够,是否兼容国内网网站

2017-01-13 16:08:38 1884浏览量 回答数 1

1

回答

网站服务器存放物理地址

2015-05-21 08:53:40 2815浏览量 回答数 1

1

回答

win2008修改服务器密码,重启,网站则打不开!

2015-05-20 16:22:53 6116浏览量 回答数 1

3

回答

更换服务器ip对网站的收录以及排名有影响吗?

2015-05-19 09:48:01 3653浏览量 回答数 3

2

回答

JAVA网站上传到服务器后访问不到子目录里的页面

2015-05-18 14:00:42 5576浏览量 回答数 2

2

回答

阿里云ESC服务器,无法访问网站

2015-05-18 13:39:56 7036浏览量 回答数 2
文章
问答
问答排行榜
最热
最新
相关电子书
更多
好的 MySQL 兼容可以做到什么程度
立即下载
MySQL 5.7让优化更轻松
立即下载
PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL
立即下载