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

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

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

戳这里提交新闻线索和高质量文章给我们。
相关阅读
爱因斯坦成为Salesforce的解决方案我在淘宝写SQL|ODPS SQL 优化总结【深入学习MySQL】MySQL的索引结构为什么使用B+树?混合云架构下,灵活可靠的 DNS 解析解决方案——火山引擎 PrivateZone就在明天!一起见证极客邦科技 AIGC 产品与解决方案重磅首发 | 极客时间企业版德国大陆集团子公司 Elektrobit 开源基于 Ubuntu 的 Linux 车载操作系统解决方案chatgpt的答案有误?MySQL版本越高,性能越差,这你受得了吗?BCG工具及解决方案 | Growth AI,最大限度发掘消费品企业的增长潜力python操作MySQL和实战今日arXiv最热大模型论文:忘记"也是一门学问:机器如何忘记自己学到的知识?MySQL联表查询优化接受访问学者,促进中美文化与学术交流从青光眼微支架到射频能量平台,朗目医疗打造医工融合创新下的眼科微创治疗完整解决方案一地鸡毛(2)SQL 50 周年了,但 SQL 之父已经“投靠”NoSQL 了MySQL的多存储引擎架构MySQL索引你用对了吗?项目从 MySQL 切换 PostgreSQL,踩了太多的坑!!!携手全球儿童专注力权威专家“哈洛韦尔”创立,思欣跃打造闭环式数字化注意力解决方案师生恋?小张老师说“不”!手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨BCG工具及解决方案 | Growth AI的新一代收入管理功能【首发】康爱医疗完成数千万元A+轮融资,加速打造临床肿瘤支持治疗解决方案SEMICON China 2024 | 格创东智半导体智能工厂软硬融合整体解决方案惊艳亮相!MySQL慢查询及优化配置MySQL主从复制和读写分离MySQL-Xenon高可用Windows格式化对话框是一个使用了30年的 “临时解决方案”垦丁,台湾的海角天涯MySQL 巨坑:永远不要在 MySQL 中使用 UTF-8!大模型压缩量化方案怎么选?无问芯穹Qllm-Eval量化方案全面评估:多模型、多参数、多维度广和通AIoT解决方案助力AI之眼探索视界每天一则英语笑话:演员:我忘记台词了吗?导演:没有,你忘记了这个!10组"人气组合"4字密码最容易被盗,资安专家分析设密码禁忌
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。