2016-11-18 9 views
1

PostgreSQL 9.6に対するLiquibase 3.5.3コマンドラインの使用@と!を含むパスワードを使用してユーザー(例:postgres)を使って認証することができません。文字。それらを削除するためにパスワードを変更すると、認証が機能します。これは他のユーザーにも発生します。パスワードは@と!他のアプリケーションでも正しく使用されます。Liquibaseは@と!を使用してユーザーを認証できません。パスワード

私は、Java 1.8ランタイムでPostgreSQLのjdbc 4.2ドライバを使用しています。 LiquiBaseを実行

予期しないエラー:org.postgresql.util.PSQLException: FATAL:JDBCおよびLiquiBaseをを使用している場合、パスワード認証は、ユーザーのために失敗しました "のpostgres"

は、パスワードに関するユニークなものはありますか?

+1

Liquibaseを使用しているときだけでなく、JDBCを直接使用しているときもありますか? –

+1

[パスワードに特殊文字がある場合、JDBCを使用してOracleデータベースに接続できません](http://stackoverflow.com/questions/21908610/not-able-to-connect-to-oracle-database-using- jdbc-if-password-with-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 Taylor、あなたはどのツールに切り替えるのか教えていただけますか?フライウェイ? – Zingoer

+0

はい、私はフライウェイに切り替えました。それは、拡張形式をliquibaseとして提供していませんが、最初は私を動かしていました。 –

関連する問題