Liquibase无法使用@和!验证用户身份输入密码
使用Liquibase 3.5.3命令行对PostgreSQL 9.6我无法使用用户(例如postgres)进行身份验证,密码中包含@和!字符。如果我更改密码以删除它们的身份验证工作。其他用户也会发生这种情况。带@和!的密码是正确的并在其他应用程序中使用。Liquibase无法使用@和!验证用户身份输入密码
我在使用java 1.8运行时从PostgreSQL使用jdbc 4.2驱动程序。
意外的错误运行Liquibase:org.postgresql.util.PSQLException: FATAL:密码验证失败的用户 “Postgres的”
有什么关于使用JDBC和Liquibase当密码独特之处?
如果您使用命令行,为每个特殊字符添加反斜杠将解决该问题。
java -jar liquibase.jar \
--driver=oracle.jdbc.OracleDriver \
--classpath=\path\to\classes:jdbcdriver.jar \
--changeLogFile=com/example/db.changelog.xml \
--url="jdbc:oracle:thin:@localhost:1521:oracle" \
--username=scott \
--password=\!\@tiger\$\%\
update
或者您可以使用liquibase属性文件并将所有参数放在该文件中。这样,您可以在密码中使用原始特殊字符。
如果您使用像Gradle或Ant这样的构建工具,它们的参考块将帮助您跳过此问题。
这可能会起作用,我只是真的需要支持!我最终转而使用不同的迁移工具,不需要在线命令转义密码。 –
@Corey泰勒,你介意告诉我你切换到什么工具?飞路? – Zingoer
是的,我切换到了Flyway。它不提供扩展格式作为liquibase,但它最初让我开始运行。 –
您是在使用Liquibase时还是在直接使用JDBC时使用它? –
[如果密码有特殊字符,不能使用JDBC连接到oracle数据库](http://stackoverflow.com/questions/21908610/not-able-to-connect-to-oracle-database-using- jdbc-if-password-is-having-special) – dbf
你怎么连接?使用春季liquibase集成或直接使用liquibase本身?告诉我们你的代码。 –