首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password(‘新密码’);

例子:mysql> set password for root@localhost = password('123');
1
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码

例子:mysqladmin -uroot -p123456 password 123
1
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。

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

  1. 关闭正在运行的MySQL服务。
  2. 打开DOS窗口,转到mysql\bin目录。
  3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
  4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
  5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
  6. 连接权限数据库: use mysql; 。
  7. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
  8. 刷新权限(必须步骤):flush privileges; 。
  9. 退出 quit。
  10. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
  11. 关闭正在运行的MySQL服务。
  12. 打开DOS窗口,转到mysql\bin目录。
  13. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
  14. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
  15. 输入mysql回车,如果成功,将出现MySQL提示符 >。
  16. 连接权限数据库: use mysql; 。
  17. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
  18. 刷新权限(必须步骤):flush privileges; 。
  19. 退出 quit。
  20. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
    方法5:在忘记root密码的时候,可以这样

以linux为例:

编辑mysql配置文件

在[mysqld]配置节下新增skip-grant-tables。
保存配置文件后,重启mysql服务。
[root@localhost ~]# systemctl restart mysqld.service
1
[root@localhost ~]# systemctl restart mysqld.service
使用mysql命令登录mysql数据库。
mysql
1
mysql
使用下面语句修改root密码,注意和之前版本的mysql语句不太一样。
mysql>update mysql.user set authentication_string=password('新密码') where user='root' ;
mysql>flush privileges ;
mysql>quit
1
2
3
mysql>update mysql.user set authentication_string=password('新密码') where user='root' ;
mysql>flush privileges ;
mysql>quit
编辑mysql配置文件,将之前添加的skip-grant-tables去掉。
重启mysql服务。
[root@localhost ~]# systemctl restart mysqld.service
1
[root@localhost ~]# systemctl restart mysqld.service