在我的Spring Boot
应用WAR中,我有一个application.properties
文件,其中我定义了以下datasource
属性:
spring.datasource.url=jdbc:mysql://localhost/test?autoReconnect=true&useSSL=false&rewriteBatchedStatements=true
spring.datasource.username=used
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
有了这个,我就能连接到数据库了。
现在,我想通过SSH tunnel
连接到另一个数据库。我应该如何指定spring.datasource.url
才能获得此类连接?
请注意我不想编写任何样板的Java代码来执行此SSH隧道!
P.S。我用Google搜索,但无法在任何地方找到满意的答案。
答案 0 :(得分:2)
我不认为Spring可以为您创建一个SSH隧道,如果这是您正在寻找的东西。如果你想在代码中执行它,你需要一个像jsch这样的框架。
最好的解决方案是手动或使用autossh在服务器上创建SSH隧道(以保持它)。 要手动创建隧道,请登录到您的应用服务器并在屏幕中运行此命令:
ssh -L 3307:localhost:3306 serverIp
3306是mysql正在运行的端口。 3307是您要转发的端口。 使用此隧道,您现在可以使用以下方式进行连接:
spring.datasource.url=jdbc:mysql://localhost:3307/
答案 1 :(得分:-2)
与您在问题中使用的相同,除了useSSL = true,如果您的数据库使用自签名证书,则可能是verifyServerCertificate = false。