Liquibase と Microsoft JDBC Driver 4.1 を使用して Microsoft SQL Server 2008 SP3 に接続しようとしています。さまざまな例外が発生し、コマンドライン経由でサーバーへの認証を成功させる方法が 1 つもありません。同じユーザー名とパスワードを使用して、MS SQL クライアント経由でデータベースにログインできました。したがって、このユーザーのログインの問題は問題ではありません。問題は JDBC ドライバーにあると思います。
バージョン:
1) SQL Server 2008 - SP3
2) リキベース v3.3.2
3) JDBC ドライバー - 「Microsoft JDBC Driver 4.1 for SQL Server」 - http://www.microsoft.com/en-us/download/details.aspx?id=11774
4) JDK バージョン - 1.7.0_71" [Java(TM) SE ランタイム環境 (ビルド 1.7.0_71-b14)、Java HotSpot(TM) 64 ビット サーバー VM (ビルド 24.71-b01、混合モード)]
私がチェックしたこと:
1) TCP/IP が許可され、「YES」とマークされ、ポート 1433
2) 「2976923 2994310 FIX: SQL Server 2008 R2 または SQL Server 2008 を使用すると Oracle サブスクリプションのディストリビューション エージェントが失敗する」を解決するためにインストールされた MS SQL 2008 SP3 - http://support.microsoft.com/kb/2653857
3) ユーザーに対して SQL Server 認証と Windows 認証が有効になっている
エラーとコマンドライン入力:
1 「ユーザーの com.microsoft.sqlserver.jdbc.sqlserverexception ログインに失敗しました」
コマンドライン入力 -
を。liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url="jdbc:sqlserver://DBServer" --username=abcd --password=abcd123 --changeLogFile=db-changelog.xml 更新
b. liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url="jdbc:sqlserver://DBServer;databaseName=DBName;" --username=abcd --password=abcd123 --changeLogFile=db-changelog.xml update
c. liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url="jdbc:sqlserver://DBServer;databaseName=DBName;" ; --username=abcd --password=abcd123 --changeLogFile=db-changelog.xml update
2 - Liquibase の実行中に予期しないエラーが発生しました: com.microsoft.sqlserver.jdbc.SQLServerException: ポート番号 1433\DBName が無効です。
コマンドライン入力 -
を。liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=sC:\MicrosoftJDBC\sqljdbc_4.1\enu\qljdbc4.jar --url="jdbc:sqlserver://DBServer:1433/DBName" - -username=abcd --password=abcd123 --changeLogFile=db-changelog.xml update
b. liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url="jdbc:sqlserver://DBServer:1433\DBName" - -username=abcd --password=abcd123 --changeLogFile=db-changelog.xml update
c.liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url="jdbc:sqlserver://DBServer\DBName" - -username=abcd --password=abcd123 --changeLogFile=db-changelog.xml update
3 Liquibase の実行中に予期しないエラーが発生しました: com.microsoft.sqlserver.jdbc.SQLServerException: ホスト DBServer/DBName、ポート 1433 への TCP/IP 接続が失敗しました。エラー: 「null。接続プロパティを確認してください。SQL Server のインスタンスがホストで実行され、ポートで TCP/IP 接続を受け入れていることを確認してください。ポートへの TCP 接続がファイアウォールによってブロックされていないことを確認してください。」.
コマンドライン入力 -
を。liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url=jdbc:sqlserver://DBServer/DBName" --username= abcd --password=abcd123 --changeLogFile=db-changelog.xml 更新
Java や Maven ではなく、liquibase コマンドライン引数による解決が必要です。Java と Maven を介して同じユーザーで正常に認証できましたが、展開を自動化するという私の目的は解決されません。この問題の解決にご協力ください。ありがとう!