下面以 Debian 系统下 MySQL / MariaDB 为例,说明忘记 root 密码时如何重置。
先确认你用的是 MySQL 还是 MariaDB:
mysql --version
MariaDB → MariaDBMySQL → MySQL两者步骤基本一致。
sudo systemctl stop mysql
或(旧版本):
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-networking &
--skip-networking是为了安全,禁止远程连接
等待几秒,确认启动成功。
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
exit
sudo systemctl restart mysql
mysql -u root -p
输入新密码,能登录即成功。
查看用户:
SELECT user, host FROM mysql.user;
Debian 默认可能用 socket 登录:
sudo mysql -u root
改为密码登录:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
如果你告诉我:
我可以给你更精确的步骤。