最新mysql8.0.22忘记密码解决大法
windows10 mysql8.0.22忘记密码解决大法,密码搞不定,不管什么原因,不管什么提示,就按下面的方法搞一下,省时高效.
如有解决不了的密码问题,欢迎留言讨论,共同进步.
mysql忘记密码:
准备工作:停止mysql服务,win+r,运行services.msc,找到mysql服务并中止它.删除服务mysqld -remove mysql; 删除mysqld进程taskkill /f /im mysqld.exe
//注意,密码连接不成功,不一定就是密码问题,要先检查服务有没有启动.否则走弯路.https://blog.csdn.net/xiaoshaohui1234/article/details/72947707
简要步骤:方案一:
1.服务端:mysqld --console --skip-grant-tables --shared-memory,
2.客户端:mysql -u root -p
密码置空:update mysql.user set authentication_string='' where user="root";
刷新:flush privileges; 密码置空之后,必须,刷新一下就可以设置密码了.
3.服务端重启:ctrl+c,两次,中止之前mysqld.然后运行mysqld --console
4.客户端:mysql -u root -p
设置密码:set password for 'root'@'localhost'='123'; 或SET PASSWORD = 'auth_string';为当前用户设置密码.
OK
方案二:(此法较稳妥)
1.服务端:mysqld --console --skip-grant-tables --shared-memory,
2.客户端:mysql -u root -p
密码置空:update mysql.user set authentication_string='' where user="root";
刷新:flush privileges;
3.客户端:设置密码:ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin';
加密规则和密码同时改.ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin'; OK
注意:密码置空之后得flush privileges刷新一下,才能修改密码.不然会提示ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
回顾:改密码的4条命令:1.置空 update mysql.user set authentication_string='' where user='root'; 2.alter user 'root'@'localhost' identified by 'admin'; (这一句中也可带上with 加密插件名称) 3.set password for 'root'@'localhost'='admin';4.flush privileges;
ok
方案三:
用前面二个方法不成功,出现ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
(这种情况主要密码安全格式要求严格所致,一般在.exe安装方式安装mysql后或执行mysql_secure_installation之后,修改密码时出现 。
关于MySQL安全配置mysql_secure_installation参看https://blog.csdn.net/qq_29627051/article/details/105390362
https://www.jb51.net/article/47727.htm)
按前面的方法修改密码,至密码置空之后,用alter user user() identified by 'admin';不成功,出现错误提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
根据提示信息,查看一下密码变量情况 :
1.SHOW VARIABLES LIKE 'validate_password%';
2.1重新更改密码级别:
set global validate_password.policy=0;或set global validate_password.policy=low;
注意变量名称不要打错,mysql5.7之前的变量名为validate_password_policy,后面是下划线,8.0.22的是点号.
2.2修改密码长度:set global validate_password.length=4;
3.flush privileges;
4. set password for 'root'@'localhost'='1234';或者ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin';都可以.
ok
(通过set global validate_password.policy=0;和set global validate_password.length=4;两个命令所修改的变量值0、4,在重启mysql服务之后,还会恢复原值MEDIUM和8。
但修改过的密码是可以用的).
关于validate_password_policy可以参考这个https://blog.csdn.net/wltsysterm/article/details/79649484
安装插件:此法不行
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
卸插件
uninstall plugin validate_password ;
*****************************
安装插件可以用:
mysql> INSTALL COMPONENT 'file://component_validate_password'; Query OK, 0 rows affected (0.01 sec)
mysql> show global variables like '%validate_password%';
卸载插件:
mysql> unINSTALL COMPONENT 'file://component_validate_password'; Query OK, 0 rows affected (0.00 sec)
********************************
如果卸载了插件的话,之前的密码登录会一直等.(也可能是服务端有问题).
mysql忘记密码,解决办法详细版,如下:
以管理员方式
打开shell窗口
一.首先开一窗口A运行服务端
mysqld -remove mysql (删除mysql服务) //默认服务名为mysql,根据你的名称修改.本地电脑的话,可以用services.msc,启动服务器,然后按一下m键,快速找到mysql开头的服务,停止它.
taskkill /f /im mysqld.exe 删除mysqld进程
mysqld --console --skip-grant-tables --shared-memory 跳过权限表启动服务(这样不必去修改my.ini)
二.另开一窗口B
1.登录
D:\mysql\bin>mysql -u root -p
查看
use mysql;
select host,user,plugin from user; 这两句等价于select host,user,plugin from mysql.user;
mysql> select host,user,plugin from mysql.user;2.置密码为空
mysql> UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost'; //置空,两个单引号,之间无空格,看起来象一个双引号.
3.刷新
mysql> flush privileges;
查看密码置空效果:
mysql> select host,user,user password,plugin,authentication_string from mysql.user;
注:8.0.22保存密码的字段为authentication_strin
这里的password看着是一个字段,但select password不会显示,会报错,其对就的是user password.在这里似乎不能用update的方式来增加密码,试了,电脑好长时间无回馈.
此时空密码状态下,改变密码可用ALTER user 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'admin';
注意: 特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了 而是将加密后的用户密码存储于authentication_string字段。
4.修改密码
加密规则和密码同时改.ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin'; OK
(ALTER user 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'admin';这个加密对应插件是用caching_sha2_password)
此时再查看
mysql> select host,user,user password,plugin,authentication_string from mysql.user;
密码admin是经过加密之后内容,看不懂才正常.不是明语文显示.
另.alter user user() identified by "admin";也可以修改密码.但建议用ALTER user 'root'@'localhost' IDENTIFIED BY 'admin'; 或者ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin';
如果修改当前登录身份的密码直接用alter user user() identified by "123";有时也可以.
但是
有时ALTER user user() IDENTIFIED BY 'admin';
会提示出错
:
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'skip-grants host'
刷新也无用.
而用ALTER user 'root'@'localhost' IDENTIFIED BY 'admin';或者ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin';(建议用这条语句)可以.
所以,稳妥点还是多打几个字用有@的比用user()效果好.
特殊例外(方案三):用上述方法修改密码出现ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这种情况主要密码安全格式要求严格所致,一般在.exe安装方式安装mysql后或执行mysql_secure_installation之后,再改密码时出现 .
(关于MySQL安全配置mysql_secure_installation参看https://www.jb51.net/article/47727.htm)
按前面的方法修改密码,至密码置空之后,用alter user user() identified by 'admin';不成功,出现错误提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
根据提示信息,查看一下密码变量情况 :SHOW VARIABLES LIKE 'validate_password%';
关于密码要求参考:
密码级别变量validate_password.policy为medium,
重新更改密码级别:
set global validate_password.policy=0;或set global validate_password.policy=low;
注意变量名称不要打错,mysql5.7之前的变量名为validate_password_policy,后面是下划线,8.0.22的是点号.
再次修改密码:
还是出错,再看密码变量值:show variables like 'validate_password%';
密码长度不合格,再修改下长度:set global validate_password.length=4;
再次修改密码:(须flush privileges;刷新之后再修改密码才行.)
(通过set global validate_password.policy=0;和set global validate_password.length=4;两个命令所修改的变量值0、4,在重启mysql服务之后,还会恢复原值MEDIUM和8.
但修改过的密码是可以用的).
注:可以在客户端窗口用cmd命令行方式:mysqladmin -u root shutdown -p 停止 服务窗口对应的mysqld服务。
最新mysql8.0.22忘记密码解决大法相关推荐
- mysql8.0.20忘记密码_mysql8.0.19忘记密码的完美解决方法
推荐阅读:MySQL 8.0.19支持输入3次错误密码锁定账户功能(例子) 1.打开cmd窗口(最好以管理员身份打开),net stop mysql 停止mysql服务 2.开启跳过验证密码的mysq ...
- mysql8.0.20忘记密码_mysql8.0版本忘记密码修改密码
最近也不知道是懒了还是老了,几天没碰数据库竟然把密码忘了,这就好比吃饭的家伙锁在箱子里,那还怎么吃饭?所以我得把mysql密码相关的都整理一下,免得还得招人开锁,那实在是太尴尬了. 实验目的:忘记用户 ...
- mysql8.0.28忘记密码
# 跳过授权表验证 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 最后添加: skip-grant-tables# 刷新权限 FLUSH PRIVILEGES ...
- 【Linux学习笔记】3.Linux 忘记密码解决方法及远程登录
前言 本章介绍Linux的忘记密码解决方法及远程登录. Linux 忘记密码解决方法 很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当 ...
- centos8安装mysql8_CentOS 8安装MySQL8.0.22图文教程
安装环境 系统版本:CentOS-8.2.2004(安装centos系统本章节不细节描述) mysql版本:MySQL8.0.22 一.Mysql下载 1.下载 MySQL 所需要的安装包,下载地址: ...
- 1. mysql8.0.22安装及其简单使用
mysql8.0.22 1. 数据库的相关概念 2. 数据库存储数据的特点 3. MySQL产品的安装 一.MySQL服务的启动和停止 二.MySQL服务的登录和退出 三.MySQL的常见命令和语法规 ...
- MySQL8.0.22的下载安装(Windows)
MySQL8.0.22的下载安装(Windows) 官网下载地址 启动服务: 登录: 修改密码: 官网下载地址 https://dev.mysql.com/downloads/mysql/ 下载完成后 ...
- mysql8.0 设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql8.0 设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements ...
- 虚拟机忘记密码解决方法
虚拟机忘记密码解决方法 参考文章: (1)虚拟机忘记密码解决方法 (2)https://www.cnblogs.com/pinpin/p/10937152.html 备忘一下.
最新文章
- PsList v1.28使用
- HttpServletRequest(request的一些API)
- HTML5 入门详解
- 使用CSS3改变文本选中的默认颜色
- django-视图中的request对象的属性
- Apache服务器的下载与安装
- Swift中的willSet与didSet
- vue框架导入echarts第一个示例
- vue3.0中使用echarts
- c语言交通处罚单系统主函数,C语言课程设计交通处罚单管理系统.doc
- IOS-App Store 提审应用步骤
- js表单提交的三种方式
- No instances available for provider
- php工程师的学习之道以及需要掌握的知识体系
- gmm聚类python_GMM-实现聚类的代码示例
- WAP(wml)开发问答
- input自动填充后背景颜色被覆盖的问题
- 网络安全架构:如何理解P2DR模型
- js输出26个英文字母
- win10查看笔记本电脑电池健康度