需要注意的是mysql8.0之后的版本已经不能再使用下面的方法修改密码:
# 高版本mysql没有password列,而是改成了authentication_string列
update user set password=password('123456') where user='root';
# 但是这样也会报错
update user set authentication_string=password('123456') where user='root';
# 这样不会报错,但是由于未使用密码加密方法,故修改后仍然不能用新密码登录
update user set authentication_string='123456' where user='root';
正确方法:
-
打开一个cmd窗口,依次输入(目的是可以不用密码访问数据库)
net stop mysql mysqld --console --skip-grant-tables --shared-memory
-
再打开一个新的cmd窗口,输入mysql,进入数据库,切换当前数据库为mysql
-
输入
select user,host from user;
查询user和host -
输入
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
修改数据库密码- 注意:
'root'@'localhost'
需要换成自己刚刚查到的user和host,有些人的host是%那就写%
- 注意:
-
输入
flush privileges;
刷新 -
输入
flush privileges;
刷新 -
输入
quit
退出,重新启动服务器,然后就可以使用新密码登录了