You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法登录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 mariadb
    
    现在用mysql -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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:01:03