首页 > 解决方案 > 如何连接到 mysql 并在 Jenkins 自由式作业中传递凭据

问题描述

我正在尝试从 Jenkins 作业连接到远程 MySQL 服务器。

我将 MySQL 用户凭据绑定到两个变量MYSQL_USERNAMEMYSQL_PASSWORD. 我需要先 SSH,然后连接到 MySQL。我使用的shell命令是:

ssh remote_server mysql --user="$MYSQL_USERNAME" --password="$MYSQL_PASSWORD" -e "SHOW DATABASES;"

(构建步骤-> 执行 shell)(仅用于 --user、--password 和 -e 的引号)

错误摘要:在命令行上使用 MySQL 凭据是不安全的,我得到了整个 mysql 帮助命令。

任何帮助表示赞赏。

标签: mysqljenkinscredentials

解决方案


双引号你正在远程执行的命令,并在参数周围使用单引号

ssh remote_server "mysql --user='$MYSQL_USERNAME' --password='$MYSQL_PASSWORD' -e 'SHOW DATABASES;' 2>/dev/null"

2>/dev/null抑制警告,但肯定有更好的方法来解决这个问题,比如不像它建议的那样在命令行上传递密码。


推荐阅读