Linux系统忘记Mysql数据库root用户的密码无法进入系统解决方案
-
启动mysql时跳过权限验证,该命令的 /etc/init.d/mysqld 路径需要根据自己的本地mysql安装路径修改
/etc/init.d/mysqld start --skip-grant-tables
-
执行mysql命令进入数据库
mysql
-
切换到mysql数据库
use mysql;
-
修改user表的root用户的密码
UPDATE user SET authentication_string = password('新密码') WHERE Host = 'localhost' AND User = 'root';
这是因为MySql默认运行在safe-updates模式下,该模式会导致非主键条件下无法执行update或者delete命令,因此在执行更新user密码的sql语句时Host条件和User条件都要有 (Host 和 User都是user表的主键)
-
重启mysql,该步骤是必须的,目的是使修改的用户密码生效,否则输入任何密码都能进入mysql
/etc/init.d/mysqld restart