通过SSH隧道连接远程MySQL-rds服务

场景:

      现有一台MySQL-rds服务,地址:lws.rds.com:3306,用户名:lws,密码:123456,数据库:user。

      现要在本地连接该服务,对数据进行处理,然而本地ip无法访问远程数据库。

      已知有一台服务器A可以连接该数据库服务,ip:8.123.456.7,用户名:root,密码:654321,如何通过这台服务器的ssh隧道连接远程数据库服务。

实现:

      使用ssh命令将远程数据库服务端口 通过ssh隧道 绑定到本地任意空闲端口,如下绑定到本地端口3307:

ssh -fN -L3307:lws.rds.com:3306 [email protected]

      回车后输入服务器A密码654321,绑定成功。

 

使用:

      在thinkphp中调用示例如下:

$dbstr = "mysql://lws:[email protected]:3307/user";
$sql = "select * from user limit 1";
$arr = Db::connect($dbstr)->query($sql);

      其他框架及语言用法类似,连接本地3307端口,即可映射到对应远程数据库服务端口,远程数据库账号密码正常输入即可。


你可能感兴趣的:(PHP进阶技术实战,MySQL,ssh,mysql,运维)