为什么Cloudbees Jenkins因MySQL的Access拒绝错误而间歇性失败?

时间:2013-04-12 12:20:50

标签: mysql cloudbees

我们已经设置Cloudbees Jenkins在Github中检测到提交时运行集成测试作业。但由于一些奇怪的原因,一些间歇性构建失败并出现以下错误:

ERROR 1045(28000):用户'root'@'localhost'拒绝访问(使用密码:YES)

在我们的集成测试工作中,我们执行以下操作:

  1. 删除MySQL数据库(如果存在)。
  2. 为集成测试创建新数据库。
  3. 运行集成测试(Junit)
  4. 我们已经为root用户设置了一次MySQL管理员密码为'mysql' - 通过在作业中执行shell命令。之后我们将其删除,因为它下次失败了,这表明每次作业都不需要设置密码。

    关于为什么会发生这种情况的任何输入都会有所帮助。

1 个答案:

答案 0 :(得分:0)

Cloudbees平台使用从属池,你的构建可能发生在它已构建的节点上(分配算法试图给你这样一个,这样你就可以获得已经配置的所有依赖项)但是你有时会构建到从一个全新的节点开始。因此,在两种情况下,您的构建都需要完全可重现。

可能的解决方法是使这个pasword初始化有条件以某种方式检测已经设置的数据库,或强制执行完全重置,以便您可以安全地在每次构建时运行init命令