首先停止mysql或mariadb服务
systemctl stop mysqld
无需密码即可启动MySQL服务器
mysqld_safe --skip-grant-tables &
登录到mysql
mysql -u root
修改密码
根据您在系统上运行的mysql或maridb服务器版本,您需要使用不同的命令来恢复root密码。
[root@linux /]# mysql --version
mysql Ver 14.14 Distrib 5.6.47, for Linux (x86_64) using EditLine wrapper
mysql 5.7.6及更高版本或mariadb 10.1.20及更高版本,请运行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MY_NEW_PASSWORD';
FLUSH PRIVILEGES;
mysql 5.7.5及更早版本或mariadb 10.1.20及更早版本,请运行以下命令:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD');
FLUSH PRIVILEGES;
如果ALTER USER语句不适用于您,请尝试直接修改用户表:
update mysql.user set password=password("MY_NEW_PASSWORD") where user="root";
FLUSH PRIVILEGES;
重启mysql服务器
mysqladmin shutdown
systemctl start mysqld