Liquibase跨实例支持情况及相关执行命令正确性咨询
Liquibase跨实例操作能力说明
Liquibase原生支持跨实例数据库操作,只要运行Liquibase的执行环境和目标数据库实例网络连通(对应端口放通、访问权限配置正确),不管目标实例部署在本地机房、公有云RDS还是其他异地节点,都可以正常执行变更脚本,没有实例部署位置的限制。
你提供的执行命令问题修正
你写的命令存在3处明显错误,无法正常执行:
- 参数名使用错误:指定数据库连接地址的标准参数为
--url,不存在liquibase.command.url这个参数写法,且参数和取值必须用等号连接 - 数据库连接串缺少协议前缀:MySQL的JDBC连接串必须以
jdbc:mysql://开头,直接写mysql://会导致数据库驱动无法识别连接地址 - 命令位置错误:
update是最终执行的操作指令,需要放在所有配置参数的最后,不能插在参数序列中间
修正后的可参考命令如下(记得替换成你自己的数据库账号密码):
.....\liquibase --changeLogFile=filename.sql --url=jdbc:mysql://aws.ap-southeast-1.rds.amazonaws.com:3306/databasename --username=你的数据库用户名 --password=你的数据库密码 update
连接AWS RDS这类云数据库实例前请提前确认:
- 执行Liquibase的主机IP已经加入RDS的访问白名单/安全组入站规则,3306端口访问权限已放通
- 如果RDS强制要求SSL连接,需要在JDBC连接串末尾追加SSL相关配置参数
- 填入的数据库账号对目标库有表结构变更、数据修改的对应操作权限
内容的提问来源于stack exchange,提问作者baskoro oo
相关产品推荐
相关产品推荐

