MySQL 修改 root 密码的方法

转载自菜鸟教程,亲测可用,记下来备用

  • 方法1:用 SET PASSWORD 命令

    首先登录 MySQL(命令行或UI工具均可)

    格式:

    1
    set password for 用户名@localhost = password('新密码');

    例子:

    1
    set password for root@localhost = password('123');
  • 方法 2:用 mysqladmin

    格式:

    1
    mysqladmin -u用户名 -p旧密码 password 新密码 

    例子:

    1
    mysqladmin -uroot -p123456 password 123
  • 方法 3:用 UPDATE 直接编辑 user 表

    例子(适用于MySQL5.7以下版本):

    1
    2
    3
    use mysql; 
    update user set password=password('123') where user='root' and host='localhost';
    flush privileges;

    若是MySQL5.7及上版本,会报错“1054 - Unknown column ‘password’ in ‘field list’”,原因是MySQL将password这个字段改为了authentication_string,所以对应的sql语句也需要更改。

    例子(MySQL5.7及上版本)

    1
    2
    3
    use mysql; 
    update user set authentication_string=password('123') where user='root' and host='localhost';
    flush privileges;
  • 方法 4:在忘记 root 密码的时候,可以这样

    1. 管理员权限打开CMD命令行窗口,关闭正在运行的 MySQL 服务

      1
      net stop mysql
    2. 然后输入如下,意思是启动MySQL服务的时候跳过权限表认证。

      1
      mysqld --skip-grant-tables
    3. 管理员权限打开一个新的CMD命令行窗口,输入

      1
      mysql
    4. 此时应该能够直接登录进MySQL,然后再使用方法3修改密码即可,例子:

      1
      2
      3
      use mysql; 
      update user set authentication_string=password('123') where user='root' and host='localhost';
      flush privileges;

ps:请确保已经将MySQL的路径加入到了环境变量,否者需要收到 cd 到 MySQL 的 bin 目录下(例如我的:F:\apps\mysql-5.7.33-winx64\bin)运行命令。