zoukankan      html  css  js  c++  java
  • Linux下MySQL忘记root密码的解决方法

    在使用MySQL数据库时,由于某些原因长时间没有登陆MySQL,或者由于工作交接完成度不高,导致数据库root登陆密码忘记,如何解决?

    一、更改my.cnf配置文件

    1、用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 或者 nano /etc/my.cnf

    2.在[mysqld]下添加skip-grant-tables,然后保存并退出

    3.重启mysql服务:service mysqld restart

    二、更改root用户名

    1、重启以后,执行mysql命令进入mysql命令行

    2、修改root用户密码

    MySQL> UPDATE mysql.user SET Password=PASSWORD('新密码') where USER='root';
    MySQL> flush privileges;
    MySQL> exit

    注意:以上是5.7之前的版本使用,5.7之后的版本没有Password字段,password字段改成了authentication_string

    mysql> update mysql.user set authentication_string=password(‘root123456’) where user='root'; #修改密码成功
    Query OK, 1 row affected, 1 warning (0.00 sec)
    Rows matched: 1 Changed: 1 Warnings: 1
    mysql> flush privileges; #立即生效
    Query OK, 0 rows affected (0.00 sec)

    mysql> quit
    Bye

    n>mysql -u ******* -p #以该用户登录成功.
    Enter password: ********
    …………………………
    mysql>

    注意:5.7之后的版本,密码不能过于简单,如123456,否则会报以下错误:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。

    此时,要么把密码设置复杂点,要么修改配置:

    这个其实与validate_password_policy的值有关。
    
    validate_password_policy有以下取值:
    
    默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
    有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
    必须修改两个全局参数:
    
    首先,修改validate_password_policy参数的值
    
    mysql> set global validate_password_policy=0;
    Query OK, 0 rows affected (0.00 sec)
    1
    2
    validate_password_length(密码长度)参数默认为8,我们修改为1
    
    mysql> set global validate_password_length=1;
    Query OK, 0 rows affected (0.00 sec)
    1
    2
    4,完成之后再次执行修改密码语句即可成功
    
    mysql> alter user 'root'@'localhost' identified by '123456';
    Query OK, 0 rows affected (0.00 sec)

    3、最后把/etc/my.cnf中的skip-grant-tables注释掉,然后重启mysql,即:service mysqld restart

    OK,下面我们就可以使用root新的密码登录MySQL了。

     

  • 相关阅读:
    SpringTask中cron表达式整理记录
    解决idea启动弹窗
    windows上安装kafka
    两种方式实现横向滚动条
    浅谈新的布局方式-flex
    不忘初衷,方得始终 ---总结一年的前端生涯
    javascript深入理解js闭包(转载)
    es6学习笔记--Interator和Generator(以及for-of的用法)
    根据HTML5的新方法 drag & drop 方法实现表格拖拽实例
    HTML5 拖放(Drag 和 Drop)详解与实例(转)
  • 原文地址:https://www.cnblogs.com/zhangpeng8888/p/12920671.html
Copyright © 2011-2022 走看看