0

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

错误 1045 (28000): 用户 'root'@'localhost' 的访问被拒绝(使用密码:是)

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

  1. 如果 MySQL 数据库存在,则删除它。
  2. 为集成测试创建一个新数据库。
  3. 运行集成测试(Junit)

我们已经将 MySQL admin 的密码设置为 root 用户的“mysql”——通过在作业中执行 shell 命令。后来我们删除了它,因为它下一次失败了,这表明密码不需要每次都由作业设置。

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

4

1 回答 1

0

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

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

于 2013-05-18T06:16:22.740 回答