【问题标题】:Access remote database from Jenkins Pipeline when jenkins does not have DB当詹金斯没有数据库时,从詹金斯管道访问远程数据库
【发布时间】:2019-02-22 06:19:54
【问题描述】:

我必须从 Jenkins 访问云铸造数据库。为此,我已将 Cloud Foundry SQL 端口转发到 Jenkins 本地端口。

在 Jenkins 上,我已经安装了数据库和 SQl 插件并尝试连接 localhost:3306 端口。但是,它给出了以下错误:

错误 2003 (HY000):无法连接到“127.0.0.1”上的 MySQL 服务器 (111)

  • cf ssh 应用程序名称 -L 3306:192.168.32.29:3306 [管道] sh
  • mysql -h 127.0.0.1 -P 3306 -u 用户名 -ppassword 数据库名 错误 2003 (HY000):无法连接到“127.0.0.1”上的 MySQL 服务器 (111)

【问题讨论】:

  • 我觉得不用localhost,需要使用mysql服务器运行所在主机的ip地址。
  • 因为cloud Foundry,我们不知道SQL server的host ip,只能转发访问SQL的端口。
  • 你能检查一下 MySQL 在 Cloud Foundry 上运行的哪个端口,是不是 3306 以外的端口?

标签: mysql jenkins jenkins-pipeline cloud-foundry


【解决方案1】:

我找到了解决方案,因为 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 用户名 -ppassword db-name

操作完成后,我们可以使用kill命令关闭后台命令

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    相关资源
    最近更新 更多