MySQL密码管理器mysql_config_editor

mysql_config_editor 是 MySQL 官方自带的一款命令行小工具,作用一句话:把账号、密码、主机、端口等连接信息加密存起来,下次连接时只敲一个名字即可,不用再写明文密码。

核心能力

能力

说明 加密存储 把敏感信息 用户、密码、主机、端口、socket 等 加密后保存在 ~/.mylogin.cnf,避免命令行或脚本里出现明文密码。 多组配置 可以存很多套连接参数,每套用一个“ 自动读取 后续使用 mysql、mysqldump 等客户端时,只需加 --login-path 名字,即可自动加载对应配置。

常用命令速查

添加/修改一组配置

1
2
3
4
5
6
7
8
mysql_config_editor set \
--login-path local \
--host 127.0.0.1 \
--user root \
--port 3306 \
--socket /var/lib/mysql/mysql.sock \
--password
# 回车后交互输入密码

示例:

查看所有已存配置

1
mysql_config_editor print --all

使用配置连接

1
mysql --login-path local

等同于 mysql -h127.0.0.1 -uroot -p,但密码不会出现在命令行或历史记录里。

删除一组配置

1
mysql_config_editor remove --login-path local

为什么更安全?

  • 文件 ~/.mylogin.cnf 0600 权限,别人读不到。
  • 内容 混淆加密,即使被拷贝也无法直接看到密码。
  • 命令行 **不再出现 **-p密码,避免被 history 或 ps 泄露。

典型场景

  • 脚本里定时备份:
    mysqldump --login-path backup mydb > mydb.sql
  • DBA 管理多台实例:
    给每台机器建一个 --login-path prod1、prod2… 一键切换。

一句话总结:mysql_config_editor 就是 MySQL 的“密码管理器”,写完配置后,连库只需敲名字,安全又省事。