mysql8.0.19提示密码错误和修改密码。(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwo)

场景:

最近安装了mysql8.0.19,安装的时候mysql会初始化一个密码,但是我按照初始化密码输进去后一直报:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
ps:个人理解是因为caching_sha2_password加密的问题,而修改密码后加密方法是:mysql_native_password

mysql8.0.19修改密码

1.打开cmd A窗口

(1)首先关闭mysql服务

    net start mysql

(2)跳过权限表启动服务

mysqld --console --skip-grant-tables --shared-memory;
#--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。

ps:启动后不要关闭A窗口

2.打开cmd B窗口

(1)进去mysql

mysql - u root -p

提示要输入密码,不用输入直接回车就可以了
(2)查询所有用户

select host,user,plugin,authentication_string from mysql.user;

mysql8.0.19提示密码错误和修改密码。(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwo)_第1张图片
上面可以看到plugin列可以看到都是caching_sha2_password
(3)修改密码和密码方式

ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

mysql8.0.19提示密码错误和修改密码。(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwo)_第2张图片
这里修改了插件mysql_native_password。
(4)刷新权限

flush privileges;

(5)退出后重新登录输入123456,进去成功后,证明密码修改成功。

注意

好像插件一定要修改成mysql_native_password,我修改密码的时候前几次一直没有修改插件,一直为caching_sha2_password插件,所以也一直提示密码错误,改了成插件mysql_native_password就好了。

你可能感兴趣的:(问题解决笔记,mysql)