2013-04-12 2 views
0

У нас есть настройка Cloudbees Jenkins для выполнения задания по тестированию интеграции, когда он обнаруживает фиксацию в Github. Но по какой-то странной причине, некоторые прерывистый строит неудачно со следующей ошибкой:Почему Cloudbees Jenkins прерывается с ошибкой Access denied для MySQL?

ERROR 1045 (28000): Доступ запрещен для пользователя «корень» @ «локальный» (используя пароль: ДА)

В нашей интеграции Test работа, мы делаем следующее:

  1. Оставьте базу данных MySQL, если она существует.
  2. Создайте новую базу данных для интеграционных тестов.
  3. Run Интеграционные тесты (JUnit)

Мы установили пароль для MySQL администратора один раз «MySQL» корневого пользователя - при выполнении команды оболочки в работе. Позже мы удалили его, потому что он потерпел неудачу в следующий раз, указав нам, что каждый раз задание не нужно устанавливать пароль.

Любые материалы о том, почему это может произойти, помогут.

+0

Я был в состоянии обходной путь этой проблемы, добавив следующее в Jenkins в облачных облаках: mysqladmin -u root password 'mysql' --socket =/home/jenkins/mysql/mysql.sock >> temp.txt Перенаправление гарантировало, что если команда не удалась, сборка не остановится. И когда пароль пуст, он установит пароль. – Gurpreet

ответ

0

Платформа Cloudbees использует ведомый пул, и ваша сборка может возникать на узле, на котором он уже построен (алгоритм распределения пытается дать вам такой, чтобы вы уже заработали все зависимости), но у вас когда-нибудь будет сборка для запуска нового нового узла. Таким образом, ваша сборка должна быть полностью воспроизводимой в обеих ситуациях.

Возможный обходной путь, чтобы сделать эту инициализацию Pasword условно какой-то способ для вас, чтобы обнаружить DB уже настроен, или для обеспечения полного сброса, так что вы можете безопасно выполнить команду инициализации на каждом построить

Смежные вопросы