首页/数据/数据库速查/mysql 安全输入密码的三种方式
本包目录(495 条)

mysql 安全输入密码的三种方式

命令行携带明文密码会泄露到历史记录与进程列表;推荐 mysql_config_editor 加密登录路径,其次 600 权限选项文件,环境变量仅限测试。

数据库速查数据更新于 2026-10-12
用途避免口令泄露的连接方式
首选mysql_config_editor --login-path
备选--defaults-extra-file

方式一:加密登录路径(推荐)

方式一:加密登录路径(推荐)
mysql_config_editor set --login-path=prod --host=10.0.0.5 --user=dba --port=3306 --password
mysql --login-path=prod -e "SELECT 1;"
mysql_config_editor print --all

方式二:独立选项文件

方式二:独立选项文件
cat > /etc/mysql/backup.cnf <<'EOF'
[client]
user=backup
password=***
host=127.0.0.1
EOF
chmod 600 /etc/mysql/backup.cnf
mysql --defaults-extra-file=/etc/mysql/backup.cnf -e "SELECT 1;"

方式三:环境变量(不推荐)

方式三:环境变量(不推荐)
export MYSQL_PWD='***'   # 同机用户可读 /proc/<pid>/environ,仅测试环境用
mysql_config_editor 把凭据加密写入 ~/.mylogin.cnf;mysqldump、mysqladmin、mysqlbinlog 等官方工具都支持 --login-path。

易错点

  • MYSQL_PWD 会被同机任何用户通过 /proc 读到,等同明文
  • --password 与 -p 等价,脚本里出现任一形式都算硬编码,应改用 login-path

数据来源与参考

  • MySQL 8.0 Reference Manual: mysql_config_editor — MySQL Configuration Utility

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌