0

Github でコミットを検出するたびに統合テスト ジョブを実行するように Cloudbees Jenkins をセットアップしました。しかし、いくつかの奇妙な理由で、断続的なビルドが次のエラーで失敗することがあります。

エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用: YES)

統合テスト ジョブでは、次のことを行います。

  1. MySQL データベースが存在する場合はドロップします。
  2. 統合テスト用の新しい DB を作成します。
  3. 統合テストの実行 (Junit)

ジョブでシェル コマンドを実行して、MySQL 管理者のパスワードを root ユーザーの「mysql」に一度設定しました。次回は失敗したため、後で削除しました。これにより、ジョブで毎回パスワードを設定する必要がないことがわかりました。

なぜこれが起こっているのかについての情報は役に立ちます。

4

1 に答える 1

0

Cloudbees プラットフォームはスレーブ プールを使用し、ビルドが既にビルドされているノードで実行される場合があります (割り当てアルゴリズムはそのようなノードを提供しようとするため、すべての依存関係が既にプロビジョニングされています)。新鮮な新しいノード。したがって、ビルドは両方の状況で完全に再現可能である必要があります。

可能な回避策は、このパスワードの初期化を何らかの方法で条件付きにして、DB が既にセットアップされていることを検出するか、完全なリセットを強制して、すべてのビルドで init コマンドを安全に実行できるようにすることです。

于 2013-05-18T06:16:22.740 に答える