# 1. 用 set password 命令

需要先登录MySql

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

# 2. 用update直接更新user表

需要先登录MySql

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

# 3. 用 mysqladmin 命令

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

# 4. 忘记root密码

# windows:

  1. 停止MySQL服务 net stop mysql
  2. 管理员权限打开cmd窗口,到mysql\bin目录下(即mysqld.exe所在目录)
  3. 设置启动MySQL服务时跳过权限表认证 mysqld --skip-grant-tables (MySQL8.0.x版本使用 mysqld --console --skip-grant-tables --shared-memory
  4. 再开一个新的cmd窗口,同样转到mysql\bin目录。
  5. 输入mysql回车。
  6. 连接权限数据库: use mysql;
  7. 改密码:update user set password=password("新密码") where user="root";
  8. 刷新权限:flush privileges; 。
  9. 退出 quit;
  10. 此时如果无法登录就重启系统。

# linux:

  1. 停止MySQL服务 service mysqld stop
  2. 修改mysql的配置文件my.conf(一般在/etc目录下) vi /etc/my.cnf
  3. 在文件的[mysqld]标签下添加一句: skip-grant-tables
  4. 然后wq保存退出
  5. 重启数据库service mysqld start
  6. 直接连数据库mysql -u root
  7. 连接权限数据库: use mysql;
  8. 改密码:update user set password=password("新密码") where user="root";
  9. 刷新权限:flush privileges; 。
  10. 退出 quit;
  11. 把第3步加的那句话去掉,然后重启mysql,然后就可以使用新密码登录了。