温馨提示×

Debian MySQL密码忘了怎么办

小樊
35
2026-09-23 03:16:10
栏目: 云计算

如果在 Debian 上忘记了 MySQL(或 MariaDB)的 root 密码,可以通过跳过权限验证的方式重置密码。以下是安全、常用的做法。


一、确认数据库类型

Debian 上可能是:

  • MySQL
  • MariaDB

可先确认:

mysql --version

二、停止 MySQL / MariaDB 服务

sudo systemctl stop mysql
# 或
sudo systemctl stop mariadb

三、以跳过权限方式启动

MySQL / MariaDB 通用方式

sudo mysqld_safe --skip-grant-tables --skip-networking &

--skip-networking 可防止远程连接,更安全

等待几秒,确认进程已启动。


四、无密码登录 MySQL

mysql -u root

五、重置 root 密码

MySQL 5.7+ / 8.0

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

MariaDB / 老版本 MySQL

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

重置密码后记得撤销该配置


九、注意事项

  • 操作期间数据库处于无密码状态,不要开放网络
  • 生产环境建议先在维护窗口操作
  • 如果是 Docker 容器,需进入容器执行同样步骤

如果你能告诉我:

  • Debian 版本
  • MySQL / MariaDB 版本
  • 是否使用 Docker

我可以给你更精确的命令。

0