当詹金斯没有数据库时从詹金斯管道访问远程数据库
Access remote database from Jenkins Pipeline when jenkins does not have DB
我必须从 Jenkins 访问 cloud foundry 数据库。因此,为此,我已将 Cloud Foundry SQL 端口转发到 Jenkins 本地端口。
在 Jenkins 上,我安装了数据库和 SQl 插件并尝试连接到 localhost:3306 端口。但是,它给出以下错误:
错误 2003 (HY000):无法连接到“127.0.0.1”上的 MySQL 服务器 (111)
- cf ssh app-name -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)
我找到了解决方案,这是因为 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 数据库名 < 'mysqlstatements.sql'
运行完成后,我们可以使用kill命令关闭后台命令
我必须从 Jenkins 访问 cloud foundry 数据库。因此,为此,我已将 Cloud Foundry SQL 端口转发到 Jenkins 本地端口。
在 Jenkins 上,我安装了数据库和 SQl 插件并尝试连接到 localhost:3306 端口。但是,它给出以下错误:
错误 2003 (HY000):无法连接到“127.0.0.1”上的 MySQL 服务器 (111)
- cf ssh app-name -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)
我找到了解决方案,这是因为 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 数据库名 < 'mysqlstatements.sql'
运行完成后,我们可以使用kill命令关闭后台命令