- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要通过 ssh 连接连接到 Mysql RDS 数据库,我尝试过打开一个 ssh 隧道然后连接到该数据库,但它没有用。
下面是我的代码:
int lport = 3306;
String host = "10.254.64.135";
String rhost = "localhost";
int rport = 8000;
String user = "ubuntu";
String dbuserName = "someusername";
String dbpassword = "somepassword";
String dburl = "jdbc:mysql://somedbhost.us-east-1.rds.amazonaws.com:3306";
String driverName = "com.mysql.jdbc.Driver";
String driverName2 = "org.gjt.mm.mysql.Driver";
Session session = null;
try {
final java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
final JSch jsch = new JSch();
session = jsch.getSession(user, host, 22);
jsch.addIdentity("C:\\Users\\rop\\workspace\\awskey.pem");
session.setConfig(config);
session.connect();
System.out.println("Connected through SSH");
final int assinged_port = session.setPortForwardingL(rport, host,lport );
System.out.println("localhost:" + assinged_port + " -> " + rhost + ":" + rport);
System.out.println("Port Forwarded");
//mysql database connectivity
Class.forName("com.mysql.jdbc.Driver").newInstance();
//String url = "jdbc:mysql://localhost:" + rport + "/" + db;
con = DriverManager.getConnection(dburl, dbuserName, dbpassword);
System.out.println("Mysql Database connection established");
System.out.println("DONE");
以上代码因以下异常而崩溃,并在“con = DriverManager.getConnection(dburl, dbuserName, dbpassword);”这一行崩溃:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
意思是当我们从 mysql workbench 连接时它确实连接正常,在快照下面:
请注意,ssh 主机 ip 与 db 主机 ip 不同
谢谢。
最佳答案
您需要将 JDBC url 中的主机名和端口替换为 localhost
以及您转发的本地端口,您称之为 rport
:
dburl = "jdbc:mysql://localhost:"+ rport;
另外,我不确定 MySQL JDBC Driver 是否支持在不指定数据库名称的情况下连接到数据库服务器:
dburl = "jdbc:mysql://localhost:"+ rport + "/yourdatabasename";
此外,如果 MySQL 服务器与 SSH 服务器不在同一台机器上运行,请确保您可以从 SSH 服务器连接到数据库服务器。MySQL 默认不允许远程连接。
关于java - 通过 ssh (java) 连接到 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36745762/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!