在 Debian 上实现 MySQL 免密登录(无需输入密码)有几种常见方式,下面按推荐程度和适用场景说明。
.my.cnf 配置免密登录(最常用 ✅)在当前用户家目录下创建:
vim ~/.my.cnf
内容示例(使用 root 用户):
[client]
user=root
password=你的密码
或指定 socket / host:
[client]
user=root
password=你的密码
host=localhost
防止其他用户读取密码:
chmod 600 ~/.my.cnf
mysql
即可直接登录。
✅ 优点:简单、稳定、适合运维脚本
❌ 缺点:密码明文存储在文件
mysql_config_editor(推荐,密码加密 ✅✅)MySQL 官方提供的加密方式。
mysql_config_editor set \
--login-path=local \
--user=root \
--host=localhost \
--password
输入密码后,会生成:
~/.mylogin.cnf
mysql --login-path=local
或默认:
mysql
如果只有一个 login-path,可直接使用
✅ 优点:密码加密
✅ 推荐生产环境使用
Debian 默认 MySQL 的 root 用户可能使用 auth_socket 插件。
SELECT user, host, plugin FROM mysql.user;
如果是:
root | localhost | auth_socket
sudo mysql
✅ 优点:完全免密码
❌ 仅 root + 本地
把 root 改为密码登录(不推荐生产):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRIVILEGES;
| 场景 | 推荐方式 |
|---|---|
| 脚本 / 运维 | .my.cnf |
| 安全优先 | mysql_config_editor |
| 本地 root | sudo mysql |
| 生产环境 | ✅ mysql_config_editor |
如果你能告诉我:
我可以给你最合适的具体方案。