MySQL8.0快速方便的重置密码及过程中遇到的问题


年纪大了,突然忘了MySQL的登录密码,冲浪一圈,发现十个里面有八个是通过在my.ini或是my_default.ini中添加–skip-grant-tables的方法来实现跳过Mysql密码来连接数据库,并更改密码。最后找到了一种直接通过命令行来重置密码的方法,并记录了主要过程及遇到的问题.

重置密码步骤

设置跳过验证

  1. 用管理员身份进入cmd一号,进入MySQL的bin目录下,执行步骤2–3的命令

cd 你的MySQL安装目录/bin

  1. 停止MySQL服务

net stop mysql
问题一:不是内部命令的解决办法

  1. 设置跳过验证(正常的话窗口是会卡在这儿的)

mysqld --console --skip-grant-tables --shared-memory
问题二:窗口没有卡住的解决办法
MySQL8.0快速方便的重置密码及过程中遇到的问题

重置root密码为空

  1. 用管理员身份进入cmd二号,进入MySQL的bin目录下,执行步骤5–7的命令
  2. 无密码登录

mysql
MySQL8.0快速方便的重置密码及过程中遇到的问题

  1. 重置root密码为空

update mysql.user set authentication_string=’’ where User = ‘root’;
出现Query

  1. quit;

重置密码

  1. 回到cmd一号,连按两次Ctrl+C,回到bin目录下,可在此窗口继续执行步骤10–14
  2. 启动数据库服务

net start mysql

  1. 进入数据库

mysql -u root -p

  1. 输入密码的时候按一次回车
  2. 设置新密码

alter user ‘root’@‘localhost’ identified by ‘123456’;(123456为你要设置的新密码)

  1. quit;需要验证的话,重复步骤10

问题及解决办法

不是内部命令

遇到这个就是忘了配置MySQL的环境变量了,将MySQL的bin路径添加到环境变量

data文件问题

按顺序执行以下命令(出错了就从头再来一次):

  1. 删除安装目录下的data文件夹[放心删,老板不会开除你的]
  2. mysqld -remove MySQL
  3. mysqld --initialize-insecure(创建data文件)
  4. mysqld --install(安装mysqld服务)
  5. net start mysql (启动mysql服务,如果要继续修改密码,记得停止mysql服务 net stop mysql)