【发布时间】:2013-05-18 14:16:22
【问题描述】:
我们已设置 Cloudbees Jenkins 以在检测到 Github 中的提交时运行集成测试作业。但是由于一些奇怪的原因,一些间歇性构建失败并出现以下错误:
ERROR 1045 (28000): 拒绝用户 'root'@'localhost' 访问(使用密码:YES)
在我们的集成测试工作中,我们执行以下操作:
- 如果存在 MySQL 数据库,则删除它。
- 为集成测试创建一个新数据库。
- 运行集成测试(Junit)
我们曾经将 MySQL 管理员的密码设置为 root 用户的“mysql”——通过在作业中执行 shell 命令。后来我们删除了它,因为它下一次失败了,这表明密码不需要每次都由作业设置。
任何关于为什么会发生这种情况的意见都会有所帮助。
【问题讨论】:
-
我可以通过在 cloudbees 上的 Jenkins 中添加以下内容来解决这个问题:mysqladmin -u root password 'mysql' --socket=/home/jenkins/mysql/mysql.sock >> temp. txt 重定向确保如果命令失败,构建不会停止。当密码为空时,它会设置密码。