mysql - 在同一个 mysql 会话中具有多个查询和重定向的 Bash 脚本
问题描述
我的 bash 脚本查询mysql
数据库 3 次,并将每个查询的标准重定向到一个文件(总共 3 个不同的文件,具有不同的列结构)。
我希望它询问mysql
密码,因为对我来说不要在脚本或磁盘上输入密码很重要。
如何在同一个mysql
会话中包含所有查询和标准输出重定向以避免要求输入密码 3 次?
这就是我现在所拥有的:
#!/bin/bash
mysql -h database.com -u user -p -e "USE database; mysql query1" > file1
mysql -h database.com -u user -p -e "USE database; mysql query2" > file2
mysql -h database.com -u user -p -e "USE database; mysql query3" > file3
解决方案
您可以使用 bash 提示输入密码,然后将其提供给每个 mysql 命令:
#!/bin/bash
echo "enter the password for MySQL:"
read -s PASSWD
mysql -h database.com -u user -p$PASSWD -e "USE database; mysql query1" > file1
mysql -h database.com -u user -p$PASSWD -e "USE database; mysql query2" > file2
mysql -h database.com -u user -p$PASSWD -e "USE database; mysql query3" > file3
这是非 bash shell 的无提示提示的 POSIX 兼容版本:
stty -echo
printf "enter the password for MySQL:"
read PASSWD
stty echo
printf "\n"
推荐阅读
- css - 我在氧气编辑器中遇到显示问题 woo commerce 图像仅在 Mozilla Firefox 中被剪切不知道为什么?
- haskell - 为什么即使我没有应用 f 参数,我还需要在 fmap 的定义中再次调用构造函数?
- python - 如何通过python中的网页抓取登录谷歌?
- excel - 如何使用多个条件进行索引匹配公式?(有问题)
- graph - 3d-force-graph 节点标题的行为类似于(单个)可点击的 url 链接
- recursion - 如何将递归算法变成迭代算法
- azure - 通过 Microsoft Azure Web 应用程序通过 http2 的事件源(服务器发送的事件)
- python - 如何在 Flask 中获取 Firestore 集合和文档
- linux - 如何在 pdsh 命令中提供密码?
- json - 找不到“object”类型的不同支持对象“[object Object]”。仅支持在从 JSON 文件读取和解析数据时绑定到 Iterables