作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验 擅长主流数据Oracle、MySQL、PG?运维开发, 备份恢复,安装迁移,性能优化、故障应急处理等
可提供技术业务: 1故障处理/疑难杂症远程支援 2.Mysql/PG/Oracle数据库离线/数仓搭建运维 ? 微信:jem_db QQ交流群:168797397 公众号:IT邦德
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验一位上进心十足的【大数据领域博主】!中国DBA联盟(ACDU)成员,目前从事DBA及程序编程擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移重启mssql,性能优化、故障应急处理等。? 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】??????感谢各位大可爱小可爱!??????
@
前言最近有粉丝和网友常问到,如何找回MySQL管理员root的密码的方法,总结以下方法分享给大家 1.init-file找回
在MySQL中,若root密码丢失则无法直接找回,只能通过特殊方式来修改密码。 步骤1:先停止MySQL服务?Kill?-9?进程号 步骤2:编辑修改密码文件 alter?user?'root'@'%'?identified?by?'jeames'; alter?user?'root'@'localhost'?identified?by?'jeames'; 步骤3:用如下方法启动MySQL mysqld_safe?--defaults-file=/etc/my.cnf?--init-file=/tmp/mysql-init.sql?& 步骤4:修改密码 alter?user?root@'localhost'?identified?with?mysql_native_password?by?'root'; alter?user?root@'%'?identified?with?mysql_native_password?by?'root'; flush?privileges; 步骤4:关闭数据库后重启
若是 Windows 服务,则可以通过如下命令启动:D:\MySQL\mysql-8.0.15-win64\bin\mysqld --defaults-file=D:\MySQL\mysql-8.0.15-win64\data803314\mysql803314.ini --init-file=d:\mysql-init.sql --console
注意,此时可以以任意一个密码登陆也可以以一个空密码登陆 MySQL
2.skip-grant-tables找回
步骤1:先停止MySQL服务 步骤2:启动?MySQL?服务 mysqld_safe?--defaults-file=/etc/my.cnf?--skip-grant-tables?& 注意,此时可以以任意一个密码登陆也可以以一个空密码登陆?MySQL
若 MySQL 是 8.0 且安装在 Windows 上,则需要加上--shared-memory 参数:G:\mysql-8.0.23-winx64\bin\mysqld --datadir=G:\mysql-8.0.23-winx64\data80323308 --console --skip-grant-tables --shared-memory然后再开一个窗口,执行下面命令,此种方法使用内存的方式启动cd G:\mysql-8.0.23-winx64\bin


3.修改参数文件找回
1.用命令编辑/etc/my.cnf配置文件,即:vim?/etc/my.cnf?或者?vi?/etc/my.cnf 2.在[mysqld]下添加skip-grant-tables,然后保存并退出 3.重启mysql服务:service?mysqld?restart 4.更改root用户名 重启以后,执行mysql命令进入mysql命令行 5.修改root用户密码,此处注意,有时候会报不允许修改,先flush?privileges再执行即可 --5.7版本 SQL>?update?mysql.user?set?authentication_string=password('root')?where?user='root'; SQL>??flush?privileges; --8.0版本 mysql>?alter?user?root@'localhost'?identified?with?mysql_native_password?by?'1';? --查询 mysql>?select?user,host,grant_priv,super_priv,authentication_string,password_last_changed? from?mysql.user;? 6.把/etc/my.cnf中的skip-grant-tables注释掉,然后重启mysql,即:service?mysqld?restart 好了,下面就可以用root新的密码登录了!

在这里插入图片描述

在这里插入图片描述
(编辑:海南站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|