mysql root密码找回(没有mysqld_safe的情况)
如果MySQL安装中没有mysqld_safe
命令,使用修改my.cnf的方式跳过登录重置密码:
对于没有mysqld_safe
的情况
- 停止MySQL服务
在Linux上,使用
systemctl
或service
命令:sudo systemctl stop mysql
或者
sudo service mysql stop
在Windows上,使用服务管理器或命令行:
net stop mysql
- 配置MySQL以跳过权限表
Linux:
编辑MySQL的配置文件(通常是
/etc/my.cnf
或/etc/mysql/my.cnf
,具体取决于安装位置),在[mysqld]
部分添加一行:skip-grant-tables
Windows:
在Windows上,可以在启动MySQL服务时通过命令行添加
--skip-grant-tables
选项。找到mysqld
的可执行文件路径。然后,在命令行中启动mysqld:"C:\Program Files\MySQL\MySQL Server X.Y\bin\mysqld" --skip-grant-tables
- 重启MySQL服务
Linux:
sudo systemctl start mysql
或者
sudo service mysql start
Windows:
启动后直接就可以执行命令
重置密码
登录mysql:
mysql -u root
重置密码(MySQL 5.7及更高版本):
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
替换
NewPassword
为新密码。撤销跳过权限表的配置并重启MySQL
Linux:
编辑MySQL的配置文件,移除或注释掉
skip-grant-tables
选项,然后重启MySQL:sudo systemctl restart mysql
Windows:
直接关闭命令行
使用新密码登录
使用新密码登录MySQL:
mysql -u root -p新密码