无法登录MariaDB求助:root及sudo登录均失败
解决MariaDB root用户登录报错1045的方法
1. 重置root密码并修正认证方式
如果是密码丢失或认证方式导致的问题,按以下步骤操作:
- 停止MariaDB服务:
sudo systemctl stop mariadb - 跳过权限校验启动服务:
sudo mysqld_safe --skip-grant-tables & - 无密码登录MariaDB:
mysql -uroot - 切换到系统权限库:
USE mysql; - 查看root用户的认证插件:
如果SELECT user, host, plugin FROM user WHERE user='root';plugin字段显示unix_socket,说明当前root用系统socket认证而非密码,需要修改为密码认证:UPDATE user SET plugin='mysql_native_password' WHERE user='root' AND host='localhost'; - 设置新密码(替换
your_new_password为自定义密码):ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password'; - 刷新权限并退出:
FLUSH PRIVILEGES; EXIT; - 停止安全模式进程并重启服务:
现在用mysqladmin -uroot -p shutdown sudo systemctl start mariadbmysql -uroot -p输入新密码即可登录。
2. 排查密码输入错误
如果之前已设置过密码,确认输入时的大小写、特殊字符是否正确,避免空格或拼写错误。
3. 检查root用户的主机权限
部分场景下root账号仅绑定127.0.0.1而非localhost,可在跳过权限表登录后执行以下命令补全权限:
CREATE USER IF NOT EXISTS 'root'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
4. 修复sudo登录失败问题
如果sudo登录报错,尝试使用完整路径执行命令:
sudo /usr/bin/mysql -uroot -p
或保留当前环境变量执行:
sudo -E mysql -uroot -p
内容的提问来源于stack exchange,提问作者blue mm
相关产品推荐
相关产品推荐

