停止MySQL服务:使用sudo systemctl stop mysql或相关命令终止进程;2. 以--skip-grant-tables模式启动:绕过权限验证,执行sudo mysqld --skip-grant-tables --user=mysql &;3. 登录并修改密码:无需密码登录后执行FLUSH PRIVILEGES,再用ALTER USER更新root@localhost和root@127.0.0.1的密码;4. 重启服务:通过systemctl restart mysql恢复正常模式,使用新密码登录验证。该方法适用于离线安装后未设密码或遗忘密码的情况,关键在于临时跳过认证并适配MySQL 8.0+语法。

MySQL离线安装后,设置或修改root密码可以通过本地安全模式跳过权限验证来完成。这种方式适用于刚安装完MySQL但未设置密码,或者忘记root密码的情况。
1. 停止MySQL服务
在进行密码重置前,先停止正在运行的MySQL服务。
- Linux系统(使用systemd):
sudo systemctl stop mysql
- 或传统init方式:
sudo service mysql stop
- 如果使用的是mysqld进程,也可用:
sudo pkill mysqld
2. 以跳过权限检查方式启动MySQL
启动MySQL时添加--skip-grant-tables参数,这样无需密码即可登录,并可修改用户权限表。
sudo mysqld --skip-grant-tables --user=mysql &
注意:该操作会跳过权限验证,仅用于本地维护,操作完成后务必重启服务恢复正常模式。3. 登录MySQL并修改root密码
使用mysql客户端直接登录(此时不需要密码):
mysql -u root
进入MySQL命令行后,执行以下步骤更新root密码:
- 刷新权限数据库(MySQL 8.0+ 推荐使用以下方式):
FLUSH PRIVILEGES;
- 修改root用户的认证插件和密码(适配新版MySQL):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
- 如果存在其他host配置(如root@127.0.0.1),也建议一并修改:
ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY '你的新密码';
4. 重启MySQL服务
退出MySQL客户端后,正常重启服务使配置生效。
sudo systemctl restart mysql
或:
sudo service mysql restart
现在可以使用新密码通过以下命令登录验证:
mysql -u root -p
输入你设置的新密码即可登录。
基本上就这些。只要按步骤操作,即使离线环境也能顺利设置MySQL的root密码。关键点是使用--skip-grant-tables临时绕过认证,进入后及时刷新权限并使用正确的语法更新密码,避免因版本差异导致失败。










