暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 8.0运维实例|忘记root用户密码怎么办?

620

实际工作中,用户忘记密码的情况时不时会发生。如果一般的用户忘记了密码,可以使用root用户登录,再使用alter user命令重置用户的密码,但如果忘记了root用户的密码就比较麻烦,本节将介绍两种重置root用户密码的方法。


01

使用skip-grant-tables系统参数启动mysqld


在启动mysqld时,如果加上系统参数skip-grant-tables,将会跳过读取系统数据库mysql的授权表,此时任何用户都可以不用密码登录MySQL,并且可以访问或修改MySQL中的任何数据。通常使用这个系统参数启动mysqld时也会加上系统参数skip-networking禁止远程连接,从MySQL 8开始,使用系统参数skip-grant-tables时会自动加上系统参数skip-networking。

可以在命令行里加上这个系统参数,如mysqld_safe --skip-grant-tables &,或者修改启动的参数文件,如/etc/my.cnf或者/etc/mysql/mysql.cnf,在[mysqld]下面加上skip-grant-tables后再重新启动msyqld。启动完成后即可不用密码登录,登录后使用下面的SQL语句修改mysql.user表里的字段authentication_string:

mysql> update mysql.user set authentication_string=password('dingjia') where user='root';


修改完成后,需要使用下面的命令将权限表重新载入:

mysql> flush privileges;


也可以使用mysqladmin flush-privileges或mysqladmin reload载入权限表。

但在MySQL 8版本中,这种方式已经不可行,因为其已移除了password()函数。可以使用alter user命令修改密码,但注意要载入权限表后才能使用alter user,修改过程如下:

mysql> alter user root identified by 'dingjia';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
Query OK, 0 rows affected (0.07 sec)
mysql> alter user root@localhost identified by 'dingjia';
Query OK, 0 rows affected (0.02 sec)、


密码修改完成后,要去掉参数文件里的系统参数skip-grant-tables,重新启动mysqld


02

使用系统参数init-file修改root用户密码


采用跳过载入授权表的方法启动mysqld会让MySQL处于非常不安全的状态,因为此时任何用户均可修改数据库里的任何数据。但采用系统参数init-file修改root用户的密码就安全很多,而且只需要重启一次MySQL实例。

首先关闭实例,再创建一个SQL文件,如chpw.sql,在文件里面写上如下修改root密码的语句:

alter user 'root'@'localhost' identified by 'dingjia';


然后使用init-file系统参数启动实例,这个系统参数指向修改root密码的SQL文件,例如:

$ mysqld_safe --init-file=/tmp/chpw.sql &


也可以在参数配置文件里面加入如下代码,再启动实例:

init-file=/tmp/chpw.sql


MySQL实例启动时会自动执行这个SQL语句,启动完成即密码修改完毕。


实例讲解

MySQL 8.0运维与优化

下期预告

直方图的使用



03

参考书籍

《MySQL 8.0运维与优化(微课视频版)》

ISBN:9787302602682

姚远 著

定价:99.8元


扫码京东优惠购书

内容简介

本书全面介绍MySQL数据库的管理、监控、备份恢复和高可用等方面的知识,并在此基础上讨论如何优化MySQL的实例和SQL语句,书中还包括大量的实战案例。

全书分五部分:第一部分(第1~4章)为管理部分,包括安装和运行、账号和权限、日志和安全等内容;第二部分(第5~7章)为监控部分,介绍通过MySQL自带的3个系统数据进行监控的方法;第三部分(第8~11章)为备份恢复部分,介绍常用的逻辑备份和物理备份工具,还介绍在没有备份的情况下如何进行数据救援;第四部分(第12~14章)为高可用部分,包括MySQL Shell、复制和InnoDB集群;第五部分(第15~18章)为优化部分,介绍基准测试工具和优化MySQL实例和SQL方法。


读者人群

本书适合具有一定IT基础知识的MySQL数据库爱好者阅读,也可以作为准备MySQL OCP考试的备考书。


04

精彩推荐


文章转载自清华计算机学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论