Redian新闻
>
MySQL忘记root密码解决方案

MySQL忘记root密码解决方案

公众号新闻


场景一:重置root密码

mysql登录密码为password()算法加密,解密成本太高,以下为通用方案;

原理:mysql提供了特殊启动方式,即跳过权限表验证,启动后,登录不需要提供密码;

登录后,即可修改mysql数据库的user表,重置密码,然后刷新权限,重启mysql服务即可;

注意:此时mysql服务将面临高风险,请在合适时间执行;

 

#停止正在运行的mysql服务

service mysqld stop

 

#以--skip-grant-tables选项启动服务,跳过权限表验证,有2种方式

方式1:指定运行选项,只在本次启动生效

./bin/mysqld_safe --skip-grant-tables --user=root &如果本机没有mysqld_safe服务,运行mysqld效果相同

 

方式2:修改配置文件,使用service、systemctl启动均生效

修改配置文件my.cnf,添加 skip-grant-tablesmy.cnf可能存在多个,请使用  sudo mysql --help | grep my.cnf   或   mysql --help | grep 'Default options' -A 1 确认加载顺序

 


#root账号登录mysql,此时不需要提供密码mysql -uroot
#切换到mysql数据库,登录账号与权限在此数据库中use mysql;
#查看mysql版本select version();
#查看当前账户信息,根据mysql版本执行#5.7+版本密码为authentication_string(生效),password;#5.7-版本密码为password #user=用户名,host=登录IP,即允许该账户登录的IP地址,每个IP一条user表记录,%表示任意IPselect user,host,authentication_string,password from user where user='root';
#5.7+设置密码update user set authentication_string=password('password') where user='root';--and Host='localhost';
#5.7-设置密码update mysql.user set password=password('password') where user='root';--host='localhost';
#5.7+支持2个密码字段,直接设置2个,生效为authentication_stringupdate user set authentication_string=password('password'),password=password('password') where user='root' ;--and Host='localhost';
#刷新权限表flush privileges;
#退出mysql连接quit;
#重启mysql服务service mysqld restart


 

场景二:增加账号与授权

以上--skip-grant-tables模式不验证权限,同时无法增加账号授权,所以增加账号的登录IP,需要以正常模式启动登录


#密码登录重启后的mysql服务mysql -u root -p #切换mysql数据库,账号和权限在此数据库use mysql; #增加账号授权grant all privileges on *.* to "root"@"ip" identified by "password" with grant option; #刷新权限表flush privileges; #退出mysql连接quit; #无需重启服务


 

场景三:修改登录密码

1> 更新mysql.user表,需要登录MySQL执行,需要刷新权限列表生效

mysql> use mysql; #5.7前后版本密码字段不一致,且 user 表同时存在2个字段# mysql5.7之前mysql> update user set password=password('123456') where user='root' and host='localhost';# mysql5.7之后mysql> update user set authentication_string=password('123456') where user='root' and host='localhost';mysql> flush privileges; #刷新权限列表

 

2> 用set password命令,需要登录MySQL执行,自动刷新权限列表

语法:set password for '用户名'@'域'=password(‘密码’)mysql> set password for 'root'@'localhost'=password('123456');

 

3> alter user命令,需要登录MySQL执行,自动刷新权限列表

语法:ALTER USER '用户名'@'域' IDENTIFIED BY 'xxxx'; #初始化时root账号只有localhostmysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

 

4> grant命令,需要登录MySQL执行,自动刷新权限列表

语法:GRANT 权限列表(逗号分隔) ON 数据库.数据表 TO '用户'@'域' IDENTIFIED BY '密码';#grant语句自动创建用户以及设置密码#权限支持 create、update、select、lete、drop、execute等,也可以指定 all privileges 授权所有权限#grant语句最后可以指定 WITH GRANT OPTION 指定用户可以将权限传递授权给其他用户。#数据库与数据表支持 * 指定全部,如 testdb.* 或 *.*,其他情况只能一条授权一个数据表mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.11.31' IDENTIFIED BY 'Mysql.pass.123' WITH GRANT OPTION;

 

5> mysqladmin,无需登录MySQL执行,自动刷新权限列表

语法:mysqladmin -u用户名 -p旧的密码 password 新密码#该方式为明文传输密码,不安全[root@localhost ~]# mysqladmin -uroot -p123456 password 1234abcdmysqladmin: [Warning] Using a password on the command line interface can be insecure.New password: Confirm new password: Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

链接:https://www.cnblogs.com/xiaoyaozhe/p/17671328.html

(版权归原作者所有,侵删)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
我在淘宝写SQL|ODPS SQL 优化总结携手全球儿童专注力权威专家“哈洛韦尔”创立,思欣跃打造闭环式数字化注意力解决方案爱因斯坦成为Salesforce的解决方案就在明天!一起见证极客邦科技 AIGC 产品与解决方案重磅首发 | 极客时间企业版MySQL索引你用对了吗?半数肿瘤患者存在营养不良!康爱医疗打造数字化肿瘤支持治疗与全程管理解决方案接受访问学者,促进中美文化与学术交流彭博推出时点数据解决方案 为量化研究提供竞争优势它来了!“不止有光”锐捷极简以太全光3.X解决方案发布会邀您线上参与!AI早知道|ChatGPT免注册可使用;阿里云AI001号员工上岗;支付宝发布AI就医助理解决方案标准级网络解决方案焕新!智慧园区需要的从来都不止有“光”?2024通信会|迈向智慧配电网建设新时代,锐捷网络发布双平面配电通信解决方案SEMICON China 2024 | 格创东智半导体智能工厂软硬融合整体解决方案惊艳亮相!【首发】康爱医疗完成数千万元A+轮融资,加速打造临床肿瘤支持治疗解决方案快、准、稳!NextSeq 1000/2000外显子组测序解决方案,开启下一个测序革新!MySQL联表查询优化师生恋?小张老师说“不”!Windows格式化对话框是一个使用了30年的 “临时解决方案”雇主品牌研究所:2024一站式DEI解决方案MySQL的多存储引擎架构“不止有光”锐捷极简以太全光3.X解决方案发布会邀您线上参与!广和通AIoT解决方案助力AI之眼探索视界BCG工具及解决方案 | Growth AI,最大限度发掘消费品企业的增长潜力从青光眼微支架到射频能量平台,朗目医疗打造医工融合创新下的眼科微创治疗完整解决方案一地鸡毛(2)混合云架构下,灵活可靠的 DNS 解析解决方案——火山引擎 PrivateZone德国大陆集团子公司 Elektrobit 开源基于 Ubuntu 的 Linux 车载操作系统解决方案自研芯片,唯理科技打造非侵入式脑机接口完整解决方案共建产业开放生态【深入学习MySQL】MySQL的索引结构为什么使用B+树?python操作MySQL和实战垦丁,台湾的海角天涯chatgpt的答案有误?广汽发布全固态电池与无图纯视觉智驾;腾讯会议发布国内首个裸眼3D视频会议解决方案丨智能制造日报【职场】雇员在奥运期间可能会面临的状况与解决方案「安声科技」获过亿元战略轮及C轮融资,提供终端嵌入式智能声学系统化解决方案|36氪首发
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。