如果在 Debian 上忘记了 MySQL(或 MariaDB)的 root 密码,可以通过跳过权限验证的方式重置密码。以下是安全、常用的做法。
Debian 上可能是:
可先确认:
mysql --version
sudo systemctl stop mysql
# 或
sudo systemctl stop mariadb
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('新密码');
如果是 MariaDB 10.4+,也可以:
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('新密码');
exit
sudo systemctl stop mysql
sudo systemctl start mysql
mysql -u root -p
mysqld_safe 不可用(systemd 环境)可临时修改 service:
sudo systemctl edit mysql
添加:
[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
然后:
sudo systemctl daemon-reload
sudo systemctl restart mysql
重置密码后记得撤销该配置。
如果你能告诉我:
我可以给你更精确的命令。