Ubuntu系统mysql重新设置密码指南

基本知识:

Ubuntu默认配置是免密登录,代码如下:

sudo mysql  #无密码登录

密码登录如下:

mysql -u root -p  # 有密码登录

问题情境:

本人手残,复制了以下代码(目的是设置密码),忘记改“你的新密码”的内容了,密码又不支持中文

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';

所以当用密码登录,就失败了

Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

此时用免密登录,自然不可能成功,如下

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

提供重新设置密码方案:

1.首先,强制关闭所有MySQL相关进程

sudo killall -9 mysqld mysqld_safe

2.接着,清理残留文件

# 删除可能存在的 PID 文件
sudo rm -f /var/run/mysqld/mysqld.pid

# 清理 socket 文件
sudo rm -f /var/run/mysqld/mysqld.sock

前两步必须完成,否则可能有以下错误:

3.然后,安全模式启动 MySQL

sudo mysqld_safe --skip-grant-tables --skip-networking --datadir=/var/lib/mysql &
  • --skip-grant-tables:跳过权限验证

  • --skip-networking:禁止远程连接

  • --datadir:明确指定数据目录

4.重新设置MySQL密码

mysql -u root
-- 必须先刷新权限
FLUSH PRIVILEGES;

-- 修改密码(注意密码复杂度,至少为纯数字三位,如:123)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你想的密码';

-- 再次刷新
FLUSH PRIVILEGES;
exit;

5.正常重启服务

# 结束安全模式进程
sudo killall mysqld

# 正常启动
sudo systemctl start mysql

# 验证状态
sudo systemctl status mysql

6.最后,用密码登录

​mysql -u root -p

    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值