如果你忘记了 MySQL 的 root
密码,可以通过以下方法跳过 MySQL 的身份验证并重置密码。这些步骤适用于大多数 Linux 系统。
步骤 1:停止 MySQL 服务
首先,停止 MySQL 服务以便能够在跳过权限检查的模式下启动 MySQL。
sudo systemctl stop mysql
或者在某些系统中:
sudo service mysql stop
如果你使用的是 MariaDB
,可以使用以下命令:
sudo systemctl stop mariadb
步骤 2:以跳过权限表的模式启动 MySQL
接下来,以跳过权限表的模式启动 MySQL(安全模式),这意味着你可以直接访问数据库而不需要密码。
sudo mysqld_safe --skip-grant-tables &
或者在某些系统中:
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
步骤 3:登录 MySQL
在启动 MySQL 之后,你可以直接登录 MySQL 而不需要密码。
mysql -u root
步骤 4:重置 root 密码
登录 MySQL 后,执行以下 SQL 命令来重置 root
用户的密码:
MySQL 5.7 及以上版本:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
MySQL 5.6 及以下版本:
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
步骤 5:退出 MySQL
执行完以上命令后,退出 MySQL:
exit;
步骤 6:恢复 MySQL 服务
关闭以跳过权限表模式运行的 MySQL,然后重新启动 MySQL 服务:
sudo killall mysqld sudo systemctl start mysql
或者:
sudo service mysql start
如果你使用的是 MariaDB
,可以使用以下命令:
sudo systemctl start mariadb
步骤 7:验证
最后,用新设置的 root
密码登录 MySQL,确保密码已成功更改:
mysql -u root -p
输入新密码后,确认是否能够成功登录。如果成功,MySQL root
密码已经被成功重置。