2016-11-18 128 views
1

使用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當密碼獨特之處?

+1

您是在使用Liquibase時還是在直接使用JDBC時使用它? –

+1

[如果密碼有特殊字符,不能使用JDBC連接到oracle數據庫](http://stackoverflow.com/questions/21908610/not-able-to-connect-to-oracle-database-using- jdbc-if-password-is-having-special) – dbf

+0

你怎麼連接?使用春季liquibase集成或直接使用liquibase本身?告訴我們你的代碼。 –

回答

0

如果您使用命令行,爲每個特殊字符添加反斜槓將解決該問題。

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這樣的構建工具,它們的參考塊將幫助您跳過此問題。

+0

這可能會起作用,我只是真的需要支持!我最終轉而使用不同的遷移工具,不需要在線命令轉義密碼。 –

+0

@Corey泰勒,你介意告訴我你切換到什麼工具?飛路? – Zingoer

+0

是的,我切換到了Flyway。它不提供擴展格式作爲liquibase,但它最初讓我開始運行。 –

相關問題