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

Ubuntu 20.04系统下无法修改或重置MySQL root@localhost密码求助

解决Ubuntu 20.04下MySQL root@localhost 访问被拒绝问题

Ubuntu 20.04 默认安装的 MySQL 服务,root@localhost 用户默认使用 auth_socket 插件做身份校验,仅允许操作系统 root 身份(通过 sudo 调用)免密登录,不支持密码登录,因此会出现输入正确密码也报错、重装后运行 mysql_secure_installation 仍然校验失败的问题。

重置root密码操作步骤

  • 停止正在运行的MySQL服务
    sudo systemctl stop mysql
    
  • 启动跳过授权表、禁用网络监听的MySQL临时实例
    sudo mysqld_safe --skip-grant-tables --skip-networking &
    
    若运行后提示 mysqld_safe: command not found,先安装对应依赖包:
    sudo apt install -y mysql-server-core-8.0
    
  • 新开一个终端窗口,免密登录MySQL Shell
    mysql -u root
    
  • 切换到MySQL系统数据库
    USE mysql;
    
  • 修改root用户的认证规则并设置新密码,将下方你要设置的root密码替换为自定义密码即可
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你要设置的root密码';
    
  • 刷新权限使配置生效
    FLUSH PRIVILEGES;
    
  • 退出MySQL Shell
    EXIT;
    
  • 停止刚才启动的临时MySQL实例,执行后输入你刚设置的新密码即可完成关机
    sudo mysqladmin -u root -p shutdown
    
  • 重启正常的MySQL服务
    sudo systemctl start mysql
    
  • 验证密码是否生效,执行后输入你设置的密码即可成功登录
    mysql -u root -p
    
    此时也可以正常运行sudo mysql_secure_installation完成安全配置。

异常排查

若运行mysqld_safe时提示启动失败、pid文件不存在,先执行以下命令修复目录权限后重试:

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo rm -f /var/run/mysqld/mysqld.pid

内容的提问来源于stack exchange,提问作者Shruthi R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:18:00