linux忘记密码怎么进入mysql
linux忘记密码怎么进入mysql详细介绍
在 Linux 系统中忘记 MySQL 密码时,可以通过以下步骤无密码登录并重置密码:
一、修改 MySQL 配置文件(通用方法)
- 以 root 权限编辑配置文件
不同 Linux 发行版的配置文件路径可能不同,常见位置包括:/etc/mysql/my.cnf(Ubuntu/Debian)/etc/my.cnf(CentOS/Fedora)/usr/local/etc/my.cnf(自行编译安装)
使用以下命令查找具体路径:
bash
/ my.cnf >/dev/null找到后用文本编辑器打开:
bash/etc/mysql/my.cnf - 添加跳过权限验证参数
在[mysqld]部分末尾添加:
iniskip-grant-tables保存并退出编辑器。
- 重启 MySQL 服务
根据系统类型选择命令:- systemd 系统(如 Ubuntu 16.04+、CentOS 7+):bash
systemctl restart mysql - sysvinit 系统(如旧版 CentOS):bash
mysql restart
- systemd 系统(如 Ubuntu 16.04+、CentOS 7+):bash
- 无密码登录 MySQL
执行以下命令直接进入 MySQL 命令行:
bashmysql root - 重置 root 用户密码
根据 MySQL 版本选择不同的方法:- MySQL 5.7.6 及以上版本:sql
IDENTIFIED - MySQL 5.7.5 及以下版本:sql
mysql password PASSWORDFLUSH
- MySQL 5.7.6 及以上版本:sql
- 恢复配置文件并重启服务
重新编辑配置文件,删除skip-grant-tables行,保存后再次重启 MySQL 服务:
bashsystemctl restart mysql
二、使用 debian.cnf 文件(仅适用于 Debian/Ubuntu)
如果系统预装了 MySQL(如通过 apt 安装),可尝试使用默认的 debian-sys-maint 用户登录:
- 查看配置文件中的凭证
打开/etc/mysql/debian.cnf,找到以下内容:ini - 登录并修改 root 密码bash
mysql debian-sys-maint输入文件中的密码后,执行:sql
mysql authentication_string PASSWORDFLUSH
三、注意事项
- 安全性风险
- 跳过权限验证期间,MySQL 完全开放,建议在本地环境操作并临时禁用网络连接。
- 修改密码后务必恢复配置文件,避免长期暴露风险。
- MySQL 版本差异
- 高版本(如 8.0+)使用
authentication_string字段存储密码,需用ALTER USER命令。 - 旧版本可能仍使用
password字段,需用UPDATE语句。
- 高版本(如 8.0+)使用
- 其他用户处理
如果需要重置其他用户密码,将上述命令中的root替换为目标用户名即可。
通过以上步骤,您可以在忘记密码的情况下重新获得 MySQL 的访问权限。操作完成后,建议定期备份重要数据并妥善保管密码。