You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL控制台仅获取Queries per second avg且不暴露密码?

安全获取MySQL的Slow queries和Queries per second avg指标(不暴露密码)

我来给你几个实用靠谱的方案,完美解决你的需求:

方案1:用mysql_config_editor加密存储登录信息(推荐长期使用)

这是MySQL官方提供的安全工具,能把你的登录密码加密存在本地文件里,绝对不会在命令行或历史记录里明文暴露:

  1. 先执行配置命令,按提示输入密码即可:
mysql_config_editor set --login-path=local --host=localhost --user=你的用户名 --password

密码会被加密存储在~/.mylogin.cnf中,只有你本人能读取这个文件。

  1. 之后直接用这个登录路径执行命令提取指标:
mysql --login-path=local -e "\s" | grep -E "Slow queries|Queries per second avg"

输出就是你需要的两个指标,全程看不到明文密码。

方案2:通过SQL计算Queries per second avg(更稳定)

其实Queries per second avg本质是总查询数除以服务运行秒数,这两个值都能从MySQL的状态表中获取,完全不用依赖\s命令的输出格式:

mysql --login-path=local -e "
-- 获取Slow queries指标
SELECT variable_value AS 'Slow queries' 
FROM information_schema.GLOBAL_STATUS 
WHERE variable_name = 'SLOW_QUERIES';

-- 计算Queries per second avg指标
SELECT ROUND(
  (SELECT variable_value FROM information_schema.GLOBAL_STATUS WHERE variable_name = 'QUERIES') / 
  (SELECT variable_value FROM information_schema.GLOBAL_STATUS WHERE variable_name = 'UPTIME'),
  4
) AS 'Queries per second avg';"

这个方法不受MySQL版本更新影响,输出格式更可控,同样全程无密码暴露风险。

方案3:临时使用的无密码暴露方案

如果只是临时用一次,不想配置mysql_config_editor,可以用环境变量临时传递密码,同时避免记录到命令历史:

# 隐藏式输入密码,不会在屏幕上显示输入内容
read -s -p "输入MySQL密码: " MYSQL_PWD
# 设置环境变量,MySQL会自动读取这个变量作为登录密码
export MYSQL_PWD
# 执行命令提取目标指标
mysql -u 你的用户名 -e "\s" | grep -E "Slow queries|Queries per second avg"
# 立即清除环境变量,降低密码泄露风险
unset MYSQL_PWD

注意这个是临时方案,环境变量在进程运行期间是可见的,安全性不如方案1。

内容的提问来源于stack exchange,提问作者Adarsh Sojitra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:25:23