如何连接到 mysql 并在 Jenkins 自由式作业上传递凭据

How to connect to mysql and to pass credentials on Jenkins freestyle job

我正在尝试从 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 帮助命令。

感谢任何帮助。

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

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

2>/dev/null 抑制警告,但肯定有更好的方法来解决这个问题,比如不通过提示的命令行密码。