ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)解决办法

问题:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)

很久没用这台电脑的mysql了,今天需要连接数据库,启动数据库报错:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
在这里插入图片描述

解决方法:

查阅资料后知道了,应该使用已知的用户名和密码登陆

mysql -u root -p

然而密码忘了,试了好几遍终于试出来了:
在这里插入图片描述
然后修改成通用的密码,不乱折腾了:
在这里插入图片描述
发现很多教程都过时了,我的版本是Server version: 8.0.19 MySQL ,最新的方法:
在这里插入图片描述

mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
mysql> flush privileges;

   
   

    退出验证下看看有没有成功:
    在这里插入图片描述

    可以看到修改密码成功了。

    然后呢,我又假装密码忘了,把忘记密码的修改密码方法演示一下:

    第一步:关闭Mysql服务

    首先先停止mysql服务。可通过net stop mysql或者任务管理器中关闭。
    在这里插入图片描述
    管理员权限操作:
    在这里插入图片描述

    第二步:跳过Mysql密码验证

    进入命令提示符(管理员登陆)操作,进入mysql目录中bin文件夹下,mysql8.0与其他版本不同的地方在于无法直接使用mysqld --skip-grant-tables来跳过密码登录。在这我们使用mysqld -console --skip-grant-tables --shared-memory来跳过权限验证。

    在这里插入图片描述
    输入执行后没有反馈,新开一个管理员窗口重新执行。

    进入目录后,确保自己已经关闭了Mysql的服务:net stop mysql
    在这里插入图片描述
    关闭Mysql服务之后,继续在D:\mysql-8.0.19-winx64\bin目录下进行操作:
    输入

    mysqld --console --skip-grant-tables --shared-memory 
    
       
       

      在输入这行代码之后,如下显示,我们就已经成功跳过Mysql的密码登录了:
      在这里插入图片描述

      第三步:无密码方式进入Mysql

      在上述步骤之后,再打开一个管理员模式运行的cmd.exe

      进入mysql下的bin目录后,直接登录mysql

      不需要通过net start mysql打开mysql服务

      在命令行中输入以下代码

      d:
      cd D:\mysql-8.0.19-winx64\bin(此处输入自己电脑上的安装目录)
      mysql -u root -p
      
         
         

        如图:
        在这里插入图片描述

        此时会显示让你输入密码,直接回车,就可以成功连接Mysql。
        在这里插入图片描述

        第四步:将登陆密码设置为空

        输入代码,将密码设置为空(此时还不能直接修改密码,必须先设置为空,否则会报错
        输入:

        use mysql; (使用mysql数据表)
        update user set authentication_string='' where user='root';(将密码置为空)
        quit; (然后退出Mysql)
        
           
           

          操作如图:
          在这里插入图片描述

          第五步:更改自己的登陆密码

          这里分为两个部分

          1.关闭第一个cmd窗口(一定要关闭!);
          2.在第二个窗口中输入代码;
          net stop mysql(关闭mysql服务,虽然会显示没有开启服务,但是以防万一)
          net start mysql(再打开mysql服务)
          
             
             

            (这里不要嫌麻烦,如果上一个mysql服务没关闭,我们依旧是无密码登陆)

            操作如图:
            在这里插入图片描述
            接着输入:

            cd D:\mysql-8.0.19-winx64\bin  (此处输入自己电脑上的安装目录)
            mysql -u root -p
            (此处会显示输入密码,直接回车就好了,第四步我们已经将他置为空了)
            ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';(更改密码)
            
               
               

              如图:
              在这里插入图片描述

              最后一步:验证密码是否修改成功

              输入:

              quit(退出mysql)
              mysql -u root -p 
              (输入新密码,再次登录)
              
                 
                 

                图示:
                在这里插入图片描述
                成功!

                在这里插入图片描述

                评论 5
                添加红包

                请填写红包祝福语或标题

                红包个数最小为10个

                红包金额最低5元

                当前余额3.43前往充值 >
                需支付:10.00
                成就一亿技术人!
                领取后你会自动成为博主和红包主的粉丝 规则
                hope_wisdom
                发出的红包
                实付
                使用余额支付
                点击重新获取
                扫码支付
                钱包余额 0

                抵扣说明:

                1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
                2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

                余额充值