【问题标题】:Connect to MySQL through SSH and by using Spring Boot通过 SSH 和使用 Spring Boot 连接到 MySQL
【发布时间】:2018-06-26 01:13:24
【问题描述】:

在我的Spring Bootapp 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 隧道!

附注我用谷歌搜索,但在任何地方都找不到满意的答案。

【问题讨论】:

    标签: java mysql spring spring-boot ssh


    【解决方案1】:

    与您在问题中使用的相同,除了 useSSL=true 和可能 verifyServerCertificate=false 如果您的数据库使用自签名证书。

    【讨论】:

    • 哦,我问的是SSH配置
    【解决方案2】:

    如果您正在寻找的话,我认为 spring 无法为您创建 SSH 隧道。如果你想在代码中做,你需要一个像jsch这样的框架。

    最好的解决方案是手动或使用 autossh 在服务器上创建 SSH 隧道(以保持其正常运行)。 要手动创建隧道,请登录到您的应用服务器并在屏幕中运行此命令:

    ssh -L 3307:localhost:3306 serverIp
    

    3306 是 mysql 运行的端口。 3307 是您要转发的端口。 有了这个隧道,您现在可以使用以下方法进行连接:

    spring.datasource.url=jdbc:mysql://localhost:3307/
    

    【讨论】:

      【解决方案3】:

      我也有同样的问题。

      我的解决方案已解决,

      第 1 步: 在 VPC 公共子网

      内创建 ec2 实例

      第 2 步:安全组中,此 ec2 实例必须允许端口 22 (SSH)

      第 3 步: 必须允许 ec2 实例 访问 RDS MySQL 的私有 IP

      第 4 步: 在 Dev Local ~> 设置转发侦听器 tcp_ip 打开终端

      ssh -f <user>@<ec2-public-dns> -L <localhost_ip>:<localhost_port>:<rds_mysql_host_ip>:<rds_mysql_host_port> -N -i <private_key>.pem
      

      例子:

      ssh -f ec2-user@ec2-public-dns -L dev-mysql-c-lib.internal:3306:***.ap-southeast-1.rds.amazonaws.com:3306 -N -i ~/.ssh/ec2-instance.pem
      

      第 5 步: 在文件配置 application-dev.yml

      将主机从 public-dns 更改为 internal-dns

      例子:

      主机: '***.ap-southeast-1.rds.amazonaws.com'

      主机: 'dev-mysql-c-lib.internal'

      spring.datasource.url: jdbc:mysql://dev-mysql-c-lib.internal:3306/mydb

      终于运行 Spring Boot

      查找 MySQL 已连接

      为我工作。 ^____^

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-13
        • 2014-02-18
        • 2014-10-08
        • 1970-01-01
        • 1970-01-01
        • 2021-08-07
        • 1970-01-01
        • 2012-06-04
        相关资源
        最近更新 更多