MySQL密码忘记如何重新设置

    刚装的MySQL,自己瞎捣鼓设置密码,结果自己都不知道密码是啥了。于是就走上了一步一个坑的重新设置密码的道路。以下是本人的解决方法,亲测有用,记录下来,以备不时之需。这里面有本人未解决的问题,热心的小伙伴,可以留言告知,不胜感谢。

第一步:将MySQL注册到win服务里面

在DOS窗口输入:net stop mysql、net start mysql时,总是提示:服务名无效。
在这里插入图片描述
原因是:因为net start +服务名,启动的是win下注册的服务。此时,系统中并没有注册mysql到服务中。

  1. 以管理员身份运行cmd.exe
    在这里插入图片描述

  2. 输入:mysqld --install
    在这里插入图片描述

  3. 启动MySQL,运行 net start mysql
    在这里插入图片描述
    遇到这个问题,解决方法:
    进入mysql的bin目录;执行mysqld --initialize-insecure ,第一次执行的话,时间会久一些,执行结束后没有输出信息,查看bin的同级目录下会多出一个data文件夹,里面一堆文件。(MySQL 5.7 以上版本默认没有data属性文件,不要手动创建。我执行的时候没有出现data文件夹,但是没影响)
    在这里插入图片描述
    再次启动,成功。
    在这里插入图片描述

第二步:正式开始

  1. 停掉mysql,输入:net stop mysql
  2. 找到my.ini文件,(路径仅供参考:C:\ProgramData\MySQL\MySQL Server 8.0),找到mysql安装目录下的my.ini,找到里面的[mysqld] 然后在下面加上skip_grant_tables(启动MySQL服务的时候跳过权限表认证)
    在这里插入图片描述
  3. 启动mysql,输入:net start mysql
  4. 输入:mysql 登陆成功。
    这里输入:mysql后,并没有成功(这我也不知道为啥);
    尝试另一种方法,输入:mysql -u root -p 回车,提示输入密码,什么都不输,继续拍回车,登陆成功。
  5. 输入use mysql (mysql的密码存在于mysql表中,因此打开该表)
  6. 修改密码:update user set authentication_string = password(“新设置的密码”) where user=“root”;(这一步,本人也没有成功,这是本人输入的:update user set authentication_string = password(‘123456’) where User=‘root’;它给我报错:在(‘123456’) 附近语法错误)。本人想既然已经进到数据库了,那就执行修改密码的sql语句:alter user ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
    成功修改密码。
  7. 刷新权限:flush privileges; 这是百度来的,大家看情况是否要执行吧,反正我没执行
  8. 退出:quit;
  9. 将my.ini中的skip_grant_tables去掉,恢复登录时候的权限表认证
  10. 重启mysql服务,再使用root和修改的密码登录即可:mysql -u root -p 新设置的密码
发布了23 篇原创文章 · 获赞 5 · 访问量 1448

猜你喜欢

转载自blog.csdn.net/zj499063104/article/details/102455663