飞行的蜗牛

vuePress-theme-reco 极客学长    2013 - 2025
飞行的蜗牛 飞行的蜗牛

Choose mode

  • dark
  • auto
  • light
首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
author-avatar

极客学长

154

文章

151

标签

首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
  • MySQL8.0 重置密码

    • 01-原理
      • 02-跳过验证启动
        • 03-重置密码

        MySQL8.0 重置密码

        vuePress-theme-reco 极客学长    2013 - 2025

        MySQL8.0 重置密码


        极客学长 2022-10-18 0 MySQL

        MySQL8.0 以后为了安全,在安装数据库的时候没有设置密码环节了,而是在初次启动的时候在 /var/log/mysql/error.log 日志文件中生成一个随机的临时密码。如果你不小心把日志文件删除了或者忘记了密码,我们就需要进行重置密码操作。

        # 01-原理

        我们需要知道的是密码存储在 mysql 数据库的 users 表中。 我们只需要绕过 MySQL 身份认证,登录到服务端然后更新 user 表记录即可。

        # 02-跳过验证启动

        首先停止现有的 MySQL 服务:

        sudo service mysql stop
        

        更改配置文档 /etc/mysql/mysql.conf.d/mysqld.cnf 在文档末尾添加 skip-grant-tables 配置:






         

        max_binlog_size   = 100M
        # binlog_do_db          = include_database_name
        # binlog_ignore_db      = include_database_name
        #
        #
        skip-grant-tables
        

        然后启动 MySQL 服务:

        sudo service mysql start
        

        # 03-重置密码

        现在我们可以直接在终端输入 mysql 命令登录服务端了。

        1. 我们需要将 user 表的 auth_socket 插件换成 mysql_native_password, 否则待会执行更新 password 语句的时候会报错 Plugin 'auth_socket' is not loaded:

          update  mysql.user set  `plugin`='mysql_native_password'  WHERE `user`='root' AND `host`='localhost'
          

          然后将 root 密码置空:

          update user set authentication_string='' where user='root';
          
        2. 用空密码登录之后,更改 root 用户密码:

          mysql -uroot -p
          ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
          
        3. 还原配置,删除 skip-grant-tables 选项,然后重启 MySQL 服务:

          sudo service mysql stop
          sudo service mysql start
          

          重启服务之后,你就可以使用新密码登录了。

        本站博文如非注明转载则均属作者原创文章,引用或转载无需申请版权或者注明出处,如需联系作者请加微信: geekmaster01

        Lotus 多重签名钱包使用详解 Spring AOP 源码学习笔记