You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否配置Liquibase使用SSH隧道?支持通过liquibase.properties等方式吗?

Liquibase通过SSH隧道连接数据库的配置方法

当然可以!Liquibase完全支持通过SSH隧道连接各类数据库,我自己平时也会这么配置,主要有两种常用方式,给你详细拆解下:

方式一:手动建立SSH隧道后使用Liquibase

这是最通用的方法,不管Liquibase版本如何都能生效:

  1. 先在本地终端手动建立SSH端口转发隧道,命令格式如下:
    ssh -L 本地端口:目标数据库主机:目标数据库端口 SSH用户名@SSH服务器地址
    
    举个例子,比如要通过SSH服务器ssh.example.com连接内部的MySQL数据库db.internal:3306,可以执行:
    ssh -L 3307:db.internal:3306 user@ssh.example.com
    
  2. 然后在liquibase.properties里配置数据库连接时,把主机换成localhost,端口换成刚才指定的本地端口即可:
    liquibase.url=jdbc:mysql://localhost:3307/your_database_name
    liquibase.username=db_user
    liquibase.password=db_password
    
    这样Liquibase就会通过你手动建立的SSH隧道连接到目标数据库了。

方式二:通过Liquibase内置SSH隧道配置(推荐)

从Liquibase 4.10版本开始,官方支持直接在配置文件里开启SSH隧道,不用手动建隧道,更省心:
你只需要在liquibase.properties里添加以下SSH相关配置,同时数据库URL用目标数据库的内部地址即可:

# 数据库基础配置
liquibase.url=jdbc:mysql://db.internal:3306/your_database_name
liquibase.username=db_user
liquibase.password=db_password

# SSH隧道配置
liquibase.ssh.enabled=true
liquibase.ssh.host=ssh.example.com
liquibase.ssh.port=22 # 默认是22,如果你SSH端口不是22就改这里
liquibase.ssh.username=ssh_user

# 可选:如果用密码登录SSH
liquibase.ssh.password=ssh_password

# 可选:如果用密钥登录SSH(推荐更安全)
liquibase.ssh.privateKeyPath=/home/your_user/.ssh/id_rsa
liquibase.ssh.privateKeyPassword=your_key_passphrase # 如果密钥有密码的话才需要

注意事项

  • 如果你用密钥登录,一定要确保私钥文件的权限设置为600(即chmod 600 /path/to/your/key),否则Liquibase可能会报错无法读取密钥。
  • 内置SSH隧道功能需要Liquibase 4.10及以上版本,如果你的版本比较旧,建议升级后再用这个方法。

内容的提问来源于stack exchange,提问作者EvenLisle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:16:40