in10下Mysql8忘记密码,登录及修改Mysql密码
第一步:以管理员身份运行控制台,关闭MySQL服务。
使用命令:net stop mysql
第二步:跳过授权表,进行免密登录。
使用命令:mysqld --console --skip-grant-tables --shared-memory
第三步:用管理员身份新打开一个控制台窗口,然后免密码登录Mysql。
使用命令:mysql.exe -u root
第四步:使用MySQL的mysql数据库
使用命令:use mysql
第五步:先修改root的密码为空。特别注意authentication_string=‘’的等号后面是一对单引号。
使用命令:UPDATE mysql.user SET authentication_string=’’ WHERE user=‘root’;
第六步:在上一步的基础上查询root的用户分组和密码。
使用命令:select host,user,authentication_string from mysql.user;
修改之后可以看到,root用户的密码已经为空。
第七步:关闭之前保留的那个控制台窗口和现在使用的这个控制台窗口一共关闭两个控制台窗口。
然后再打开一个新的窗口,启动MySQL的服务。
使用命令:net start mysql
第八步:重新登录MySQL,需要输入密码的时候,什么都不用输入直接按回车。
使用命令:mysql -u root -p
第九步,也是最后一步:修改root密码:(有可能会出错,如果这里报错, 请看下面备注:新建用户修改密码)
使用命令:ALTER user ‘root’ IDENTIFIED BY ‘123456’;
最后退出再登录测试一下吧。
在上一步的前提下使用命令quit退出,或者直接关闭控制台窗口也行。
然后使用登录命令:mysql -u root -p
回车之后输入密码,搞定。
备注:新建用户修改密码
1.必须先创建用户(密码规则:mysql8.0以上密码策略限制必须要大小写加数字特殊符号):localhost 表示本地连接,%
mysql>create user guaiyouyisi@"%" identified by "Guaiyouyisi.";
再进行赋值:
mysql>grant all privileges on *.* to guaiyouyisi@"%" with grant option;
最后刷新一下:
mysql>flush privileges;
当你进行远程连接是,会出现这样的错误:
Unable to load authentication plugin "caching_sha2_password".
是因为mysql8使用的是caching_sha2_password加密规则,最简单的方法是修改远程连接用户的加密规则:
mysql>ALTER USER "guaiyouyisi"@"%" IDENTIFIED WITH mysql_native_password BY "Guaiyouyisi.";