如何通过EC2 SSH隧道从本地JAVA程序连接到RDS

2024-02-07

我正在尝试通过 SSH 隧道从本地 JAVA 程序连接到 RDS 数据库到 EC2 实例,以进行调试。我正在尝试在 EC2 实例中建立 SSH 隧道,然后将端口转发到 RDS 数据库。这是我的代码。

final int localPort = 9999;
// Create BaiscDataSource.
final String databaseURL = "jdbc:mysql://localhost:" + localPort + "/database";
// SSH Tunnel.
final JSch jsch = new JSch();
jsch.addIdentity(sshKeyPath);
this.session = jsch.getSession(ec2Username, ec2Host, 22);
this.session.setTimeout(0);
this.session.setConfig("StrictHostKeyChecking", "no");
this.session.connect();
this.session.setPortForwardingL(localPort, rdsHost, 3306);

请帮忙!

编辑者:looply_dev 于 2012 年 10 月 2 日下午 4:17


我知道你正在做什么,但没有使用 jcraft jsch 库。我能够在单独的线程上从 java 应用程序内部执行终端命令。这是终端命令:

ssh -i /path/to/pem/ -L -N localport:remotehost:remoteport [email protected] /cdn-cgi/l/email-protection

然后在你的java jdbc适配器代码中连接127.0.0.1与上面的本地端口:

jdbc.mysql://127.0.0.1:1345/databasename/user=user&password=pass

我认为的问题是命令中的 -N 选项仅创建一个隧道,但无法通过隧道执行远程命令,这在 jcraft 的 jsch 库中默认为 true,并且我无法将默认值设置为 false 以执行远程命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过EC2 SSH隧道从本地JAVA程序连接到RDS 的相关文章

  • 使用 ChannelExec 的命令未执行 - Jsch

    我正在使用 Jsch 在服务器中创建一个文件并执行一些命令 对于文件创建 它工作正常 但是对于命令执行 则不然 它保持状态 1 仍在处理它 并永远保持该状态 这种情况发生在 shell 执行或我尝试成为 root 时 请按照以下方法操作 p
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • RMI 中的引用传递问题? [复制]

    这个问题在这里已经有答案了 有人可以告诉我我错在哪里 为什么这个 RMI 聊天应用程序不起作用 目标是通过远程对象或序列化对象实现客户端 服务器和逻辑之间的解耦 import javax swing import java awt even
  • 请参阅 Java EE eclipse 调试中的 POST 参数

    我在调试 Java EE 方面没有经验 我更像是一个 javascript 人 我需要查看哪些 HTTP POST 参数到达服务器端 我在表单将其操作指向的 jsp 文件中放置了一个断点 现在我在调试变量窗口中找不到 POST 内容 他们在
  • 在MySQL中生成随机字符串

    我正在尝试使用函数在 phpmyadmin 中获取随机字符串 我有以下代码 CREATE FUNCTION randomPassword RETURNS varchar 128 BEGIN SET chars ABCDEFGHIJKLMNO
  • 如何在 Eclipse 中使用其他外部 jar 依赖项创建不可运行/不可执行的 jar

    我无法通过 Eclipse 导出向导创建普通的 jar 不可运行 不可执行 它仅创建 jar 文件 但不会导出依赖的 jar 从而在从其他类调用导出的 jar 的方法时出现错误 请帮助 非常感谢 kurellajunior的建议 它是通过使
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • 从 @JsonProperty 值获取枚举常量

    我有一个标有 JsonProperty 的枚举 用于使用 Jackson 进行 JSON 序列化 反序列化 并且希望获取给定字符串 JsonProperty 的枚举值 public enum TimeBucket JsonProperty
  • 异步迭代器

    我有以下代码 while slowIterator hasNext performLengthTask slowIterator next 由于迭代器和任务都很慢 因此将它们放入单独的线程中是有意义的 这是对迭代器包装器的快速而肮脏的尝试
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • 无法在 mysql-apt-config [Ubuntu 14.04] 中选择“确定”

    我使用的是 Ubuntu 14 04 sudo apt get update总是给我这个选项来配置 mysql apt config 我尝试选择版本 按 tab gt 在 确定 上突出显示的键 按 Enter 但没有任何反应 它再次返回并突
  • 为什么我的代码会产生错误:该语句没有返回结果集[重复]

    这个问题在这里已经有答案了 我正在从 Microsoft SQL Server Studio 执行以下查询 该查询工作正常并显示结果 SELECT INTO temp table FROM md criteria join WHERE us
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • 对于当前月份和日期但年份不同的日期,经过的月份计算未给出正确的结果

    我正在尝试计算自特定日期以来经过的月份 该函数工作正常 尽管如果我将今天的日期与过去的不同年份放在一起 它会给我一个月的差异 不到一个月 假设对于所有日期 该函数都运行良好 除了 如果今天是 2014 03 06 YYYY MM DD 并且
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不
  • 每次我们调用浏览器时,在 selenium 中使用 driver.manage().window().maximize() 是否好?

    We use driver manage window maximize 最大化浏览器 我在网上看到一些使用的例子driver manage window maximize 尽管不需要最大化浏览器 例如 gmail 登录 我还看到使用 se
  • 在同一查询中选择 Count of ip 和 Count of DISTINCT ip

    我有一个这样的表结构 TABLE NAME counter id datetime url ip 1 2013 04 12 13 27 09 url1 ip01 2 2013 04 13 10 55 43 url2 ip02 3 2013
  • 如何在不同版本的Google App Engine中使用自定义域名?

    我使用谷歌应用程序引擎作为我的 Android 和 Web 应用程序的服务器 我使用 Android Studio 开发了 Android 应用程序 并使用 Eclipse 开发了 Web 应用程序 我在应用程序引擎中部署了两个版本 第一个
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver

随机推荐

  • 哪些列表可以作为临时列表?

    当处理项目列表时 列表仅充当暂时的容器 您建议我使用哪些列表类型 I 不想手动销毁列表 想要使用built in列表类型 无框架 库 想要仿制药 可以在不导致泄漏的情况下实现这一点的东西 function GetListWithItems
  • 使用ionic安装和卸载cordova应用程序时执行脚本

    我使用 cordova 已经有好几年了 使用 ionic 的时间还不到一年 我正在寻找在安装应用程序和卸载应用程序时运行 JavaScript 函数的方法 我做了很多搜索 但没有找到任何相关内容 有人有一个想法 至少有一个近似值可以作为起点
  • 让menhir将用户定义的函数从.mly添加到.mli

    Menhir 允许将任意 ocaml 代码添加到 mly 文件的末尾 我想在其中声明一些函数 但我找不到一种方法让 menhir 将我的函数添加到 mli 文件中 以便它们从其他模块中可见 是否可以 答案很简单 那就是no 中定义的代码 m
  • 解决导航属性 Dynamics WebAPI 深度插入时出现的错误

    我正在使用微软动态Web API https msdn microsoft com en us library mt607689 aspx将数据写入 Microsoft Dynamics 365 中的实体 当我尝试执行深插入 https m
  • 用于 Angular.js 依赖注入管理的 Grunt.js

    我正在使用 Grunt 自动构建我的网络应用程序 我遇到了一个有趣的问题 我有两个选择 1 grunt dev and 2 grunt build grunt dev只执行与开发相关的基本任务 我的 主要 Angular 模块如下所示 va
  • Py_None 的值

    我很清楚None用于表示缺乏价值 但由于在实现过程中一切都必须有一个潜在的价值 所以我想看看使用了什么值来表示没有值 关于CPython 我理解 基于文档 https docs python org 3 c api none html c
  • 无法使用 $http angularjs 获取结果数据

    我尝试使用 http 但为什么它返回 null 结果 angular module myApp factory sender function http var newData null http get test html success
  • 为泛型接口配置装饰器,并在简单注入器中将所有实例注入到具有非泛型接口参数的构造函数

    我一直在使用与所描述的非常相似的模式在这篇优秀的文章中 http www cuttingedge it blogs steven pivot entry php id 91将命令和查询作为对象 我还使用 SimpleInjector 作为
  • 当应用程序关闭并重新打开时 Android 崩溃

    我有一个非常简单的 Android 应用程序 只显示一个空白的白色屏幕 当我按 主页 按钮关闭应用程序 然后尝试再次打开该应用程序时 它崩溃了 并且我收到 强制关闭 按钮 在 Eclipse 中 我收到此错误 ActivityManager
  • 正则表达式匹配顺序

    我的问题很简单 假设我想匹配单词中的元音 但我想按照出现的特定顺序来匹配它们 例如 a e i o u 我该怎么做呢 所以你正在寻找a后面跟着一些字符 然后e后面跟着一些字符 等等 换句话说 a接下来是不是的东西e then e 然后是那些
  • 从 git 存储库中删除丢失的 LFS 对象

    我的 git 存储库 中缺少一堆 LFS 对象 无论是在客户端还是在服务器上 我知道那些物品丢失了 没关系 不幸的是这意味着git lfs fetch all甚至git lfs push all origin将失败 我想从存储库中清除 损坏
  • 迭代对数幂

    我最近搞砸了一次采访 使用 collabedit 的电话屏幕 这是问题 编写一个交互式 O lg n 算法来求 x y 的幂 x 是双精度型 y gt 0 是整数 我首先进行了递归分而治之 并尝试将其转换为迭代 但我不能 S 有没有一种方法
  • Rust 使用 vs mod?

    我正在努力解决这些问题 use宣言 A 使用声明创建一个或多个与其他路径同义的本地名称绑定 通常 一个use声明用于缩短引用模块项所需的路径 这些声明可能出现在模块和块中 通常位于顶部 And mod item A 模块项是一个模块 用大括
  • 如何在 Xcode (Swift) 中添加自动完成注释?

    如何将文本添加到自动完成功能 如下所示 告诉元素激活自身 部分 这就是我所拥有的 但是 这是一个测试 部分不会出现在自动完成中 请不要链接到其他介绍如何编写评论的帖子 以便它们会显示在通过 Option Click 弹出的窗口中 我很清楚如
  • 多租户身份服务器 4

    我正在尝试实现一个 IdentityServer 来处理多租户应用程序的 SSO 我们的系统将只有一个 IdentityServer4 实例来处理多租户客户端的身份验证 在客户端 我正在使用acr value传递租户 ID Startup
  • 如何在package.json中添加多个NODE_PATH?

    如何在package json中添加多个NODE PATH 我想要有这些多条路径 NODE PATH NODE PATH modules or NODE PATH lib NODE PATH modules 包 json name my a
  • 将 pandas 数据框列转换为带有源和目标的 networkx 图

    我在 pandas 中有一个 DataFrame 其中包含有关人员及时位置的信息 大约有 300 多万行 这是示例 其中每个名称都分配给一个唯一的index by group by并排序Name and Year import pandas
  • htaccess 通过查询字符串阻止请求

    有没有办法阻止具有特定查询字符串的所有请求 我应该阻止所有包含 userid 1234 或 userid 1234 的请求 例如 directory page php userid 1234 var2 abc var3 directory
  • Gradle 任务差异

    下面两个代码片段有什么区别 First task copyFiles type Copy lt lt from folder from into dest folder Second task copyFiles type Copy fro
  • 如何通过EC2 SSH隧道从本地JAVA程序连接到RDS

    我正在尝试通过 SSH 隧道从本地 JAVA 程序连接到 RDS 数据库到 EC2 实例 以进行调试 我正在尝试在 EC2 实例中建立 SSH 隧道 然后将端口转发到 RDS 数据库 这是我的代码 final int localPort 9