mysql - 如何连接到 mysql 并在 Jenkins 自由式作业中传递凭据
问题描述
我正在尝试从 Jenkins 作业连接到远程 MySQL 服务器。
我将 MySQL 用户凭据绑定到两个变量MYSQL_USERNAME
和MYSQL_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抑制警告,但肯定有更好的方法来解决这个问题,比如不像它建议的那样在命令行上传递密码。
推荐阅读
- javascript - 动漫js问题(完整功能)
- java - Eclipse 在 Ubuntu 16.04 上使 JVM 崩溃
- crystal-lang - 如何在 Crystal 中进行用户输入
- hive - 蜂巢中collect_list的计数并根据条件显示计数
- android - startForeground() 总是在三星 8.0 设备上显示一个弹出窗口
- sql - SQL根据不同情况从表中选择不同的记录
- scala - 在 countDistinct agg 函数中排除空字符串
- javascript - 在 node js express 中解析 req.body 中的数组
- ionic-framework - 带有浮动标签占位符颜色的离子输入在离子中没有变化
- iphone - 是否可以在 iPad 上使用 NFC?