目录
mysql_config_editor 是 MySQL 官方自带的一款命令行小工具 ,作用一句话:把账号、密码、主机、端口等连接信息加密存起来,下次连接时只敲一个名字即可,不用再写明文密码。
核心能力
|----------|---------------------------------------------------------------------|
| 能力 | 说明 |
| 加密存储 | 把敏感信息(用户、密码、主机、端口、socket 等)加密后保存在 ~/.mylogin.cnf
,避免命令行或脚本里出现明文密码。 |
| 多组配置 | 可以存很多套连接参数,每套用一个"登录路径名"区分,如 client
、remote
、backup
等。 |
| 自动读取 | 后续使用 mysql
、mysqldump
等客户端时,只需加 --login-path=名字
,即可自动加载对应配置。 |
常用命令速查

添加/修改一组配置
mysql_config_editor set \
--login-path=local \
--host=127.0.0.1 \
--user=root \
--port=3306 \
--socket=/var/lib/mysql/mysql.sock \
--password
# 回车后交互输入密码
示例:

查看所有已存配置
mysql_config_editor print --all
使用配置连接
mysql --login-path=local
等同于 mysql -h127.0.0.1 -uroot -p
,但密码不会出现在命令行或历史记录里。
删除一组配置
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 的"密码管理器",写完配置后,连库只需敲名字,安全又省事。