求助:恢复Debian 11环境下MariaDB 10.5通过sudo无密码登录root用户的方法
求助:恢复Debian 11环境下MariaDB 10.5通过sudo无密码登录root用户的方法
我之前也碰到过一模一样的问题,新装MariaDB时用sudo mysql -u root无密码登root特别顺畅,恢复备份后突然就报错了。看你贴的mysql.user表信息,问题根源很明确——Debian/Ubuntu系列的MariaDB默认是用unix_socket插件实现本地sudo用户无密码登录的,你的备份把root用户的认证插件改成了mysql_native_password,自然就没法继续无密码登录了。
下面是亲测有效的修复步骤:
- 先停止当前运行的MariaDB服务
sudo systemctl stop mariadb
- 以安全模式启动MariaDB,跳过权限校验和远程连接(避免临时开放权限带来的安全风险)
sudo mysqld_safe --skip-grant-tables --skip-networking &
- 此时可以直接无密码登录MariaDB
mysql -u root
- 切换到系统核心的mysql数据库
USE mysql;
- 将root用户的认证插件改回
unix_socket
UPDATE user SET plugin = 'unix_socket' WHERE user = 'root' AND host = 'localhost';
- 刷新权限让修改立即生效
FLUSH PRIVILEGES;
- 退出MariaDB命令行
EXIT;
- 停止安全模式的进程,再启动正常的MariaDB服务
sudo systemctl stop mariadb sudo systemctl start mariadb
现在你再执行sudo mysql -u root,应该就能恢复之前无密码登录的状态了。
备注:内容来源于stack exchange,提问作者fdamien12
相关产品推荐
相关产品推荐

