Доступ к удаленной базе данных из Jenkins Pipeline, когда у jenkins нет БД - PullRequest
0 голосов
/ 22 февраля 2019

Мне нужен доступ к базе данных облачного литейного производства от Дженкинса.Для этого я перенаправил SQL-порт Cloud Foundry на локальный порт Jenkins.

На Jenkins я установил плагин базы данных и SQl и пытался подключиться к порту localhost: 3306.Но это дает следующее сообщение об ошибке:

ОШИБКА 2003 (HY000): не удается подключиться к серверу MySQL по «127.0.0.1» (111)

  • cf ssh app-name-L 3306: 192.168.32.29: 3306 [конвейер] sh
  • mysql -h 127.0.0.1 -P 3306 -u имя пользователя -ppassword db-name ОШИБКА 2003 (HY000): не удается подключиться к MySQLсервер на 127.0.0.1 (111)

1 Ответ

0 голосов
/ 07 марта 2019

Я нашел решение, оно происходило из-за того, что cf ssh app-name -L 3306: 192.168.32.29: 3306 выполнялся, а затем завершал работу ssh перед выполнением следующей команды.

Так что в моем случаеmysql не смог найти ни одной базы данных, связанной с этим портом.

Чтобы решить эту проблему, мне нужно было запустить первую команду ssh в фоновом режиме и выполнить следующую команду mysql.

cf ssh $ {appName} -N -L 3306: $ {db_ip}: 3306 & mysql -h 127.0.0.1 -P 3306 -u user-name -ppassword db-name <'mysqlstatements.sql' </p>

После завершения операции мы можем закрыть фоновую команду, используя killкоманда

...