意外重置mysql密码

1,419 阅读1分钟

小白操作

GRANT ALL PRIVILEGES ON . TO root@"%" IDENTIFIED BY "."; 不要执行此操作

  • 使用mysqldump命令进行数据备份,提示没有权限,所以执行上条命令赋予root用户所有权限。 噩梦开始,执行之后客户端无法连接数据库,提示Access denied for user 'root'@'本机ip'(using password: YES),无法正常登陆

重置密码

数据库版本:Ver 15.1 Distrib 10.1.26-MariaDB, for Linux (x86_64) using readline 5.1

一、登陆数据库:root密码被修改后无法正常登陆,只能选用免密登录

1、错误方式

  • 在配置文件my.cnf增加skip-grant-tables,重启mysql;可能是版本问题,使用的版本重启后,执行mysql,仍提示需要密码

2、使用方式

  • 停止mysql服务:service mysql stop
  • mysqld_safe --skip-grant-table & ;
  • 执行mysql命令,直接登录
  • 重置密码:use mysql;update user set update user set authentication_string=password('新密码') where user='root'
  • 检验是否重置成功(新打开窗口):mysqladmin -uroot -p shutdown;提示输入密码,输入新密码
  • 成功关闭,则密码设置成功;
  • 启动mysql:service mysql start

三、执行任何mysql命令提示:unknown variable 'lower_case_table_names=0'

后记

1、./mysqld_safe --skip-grant-table &;失败

  • 提示unknown option '--skip-grant-table'
  • 改变方式:/etc/my.cnf中 [mysqld]下添加skip-grant-tables;正常登陆。mysql版本:5.7.20-ndb-7.5.8-cluster-gpl-log