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 -psudo 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
相关产品推荐
相关产品推荐

