为什么Cloudbees Jenkins会间歇性地失败,并出现MySQL拒绝访问错误?
我们已经将Cloudbees Jenkins设置为在Github中检测到提交时运行集成测试作业。但由于某些奇怪的原因,某些间歇性构建失败,并出现以下错误: 错误1045(28000):拒绝用户“root”@“localhost”的访问(使用密码:是) 在集成测试工作中,我们执行以下操作:为什么Cloudbees Jenkins会间歇性地失败,并出现MySQL拒绝访问错误?,mysql,cloudbees,Mysql,Cloudbees,我们已经将Cloudbees Jenkins设置为在Github中检测到提交时运行集成测试作业。但由于某些奇怪的原因,某些间歇性构建失败,并出现以下错误: 错误1045(28000):拒绝用户“root”@“localhost”的访问(使用密码:是) 在集成测试工作中,我们执行以下操作: 删除MySQL数据库(如果存在) 为集成测试创建一个新的数据库 运行集成测试(Junit) 我们曾经为根用户将MySQL admin的密码设置为“MySQL”——通过在作业中执行shell命令。后来我们删除了它
任何关于为什么会发生这种情况的信息都会有所帮助 Cloudbees平台使用一个从池,您的构建可能发生在它已经构建的节点上(分配算法试图为您提供这样一个,以便您获得所有已配置的依赖项),但有时您必须在新节点上开始构建。因此,您的构建在这两种情况下都需要完全可复制
可能的解决方法是使此pasword初始化具有某种条件,以便您检测数据库是否已设置,或者强制执行完全重置,以便在每个构建上安全地运行init命令我可以通过在cloudbees上的Jenkins中添加以下内容来解决此问题:mysqladmin-u root password'mysql'--socket=/home/Jenkins/mysql/mysql.sock>>temp.txt重定向确保如果命令失败,构建不会停止。当密码为空时,它将设置密码。