欢迎投稿

今日深度:

MySQL登录时出现ERROR1045:Accessdeniedforuser‘root‘@‘localhost‘(usingpassword:YES)无法打开解决方法汇总,

MySQL登录时出现ERROR1045:Accessdeniedforuser‘root‘@‘localhost‘(usingpassword:YES)无法打开解决方法汇总,


目录
  • 一、Bug描述
  • 二、定位报错原因
  • 三、解决方案汇总
    • 方案一:重设密码(建议忘记密码才使用这个方案)
      • 步骤1:停止MySQL服务
      • 步骤2:以无密码模式启动MySQL
      • 步骤3:连接Mysql
      • 步骤4:设置新密码
      • 步骤5:重启Mysql服务
    • 方案二:检查用户权限
      • 方案三:修改配置文件(推荐)
      • 总结

        一、Bug描述

        Mysql在使用过程中,可能会遇到登录问题,比如常见的错误信息:“Access denied for user ‘root’@‘localhost’ (using password: YES)”。

        本文将分析这个问题的可能原因,并提供一系列解决方案。

        在这里插入图片描述

        二、定位报错原因

        出现这个Access denied问题的原因有如下可能:

        • MySQL的服务器停止了。
        • 用户的端口号或者IP导致拒绝访问。
        • MySQL的配置文件错误(通常是my.cnf或my.ini)。
        • root用户的密码错误。
        • 权限问题:用户可能没有足够的权限登录。

        三、解决方案汇总

        方案一:重设密码(建议忘记密码才使用这个方案)

        步骤1:停止MySQL服务

        在Linux上,可以使用以下命令:

        sudo systemctl stop mysql
        

        在Windows上,可以通过服务管理器停止MySQL服务。

        在这里插入图片描述

        在这里插入图片描述

        在这里插入图片描述

        步骤2:以无密码模式启动MySQL

        在Linux上,使用以下命令:

        sudo mysqld_safe --skip-grant-tables &
        

        如果是Windows系统。

        使用vi /etc/my.cnf,添加到【mysqld】后面

        skip-grant-tables
        

        重启MySQL服务

        systemctl restart mysqld 
        

        创建一个免密码登录的用户

        use mysql  #选择数据库
        
        update user set authentication_string=password("123456") where user="root";  #修改密码
        

        步骤3:连接Mysql

        使用以下命令连接到MySQL服务器:

        mysql -u root

        步骤4:设置新密码

        在MySQL命令行中,执行以下命令来设置新密码:

        FLUSH PRIVILEGES;
        ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
        

        步骤5:重启Mysql服务

        在Linux上,使用以下命令:

        sudo systemctl start mysql
        

        Windows上,使用命令

        net start mysql

        方案二:检查用户权限

        确保root用户具有从localhost登录的权限。可以使用以下命令查看权限:

        SHOW GRANTS FOR 'root'@'localhost';
        

        如果权限不正确,可以使用以下命令授予所有权限:

        GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
        FLUSH PRIVILEGES;
        

        方案三:修改配置文件(推荐)

        检查MySQL的配置文件,确保没有错误的配置阻止了登录。

        常见的配置文件路径为/etc/mysql/my.cnf或/etc/my.cnf 或者 D:\Program Files\MySQL\MySQL Server 5.0\my.ini)

        在[mysqld]这个条目下加入

        skip-grant-tables 
        

        保存退出后重启mysql即可。

        这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现 password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。

        我们接下来设置密码就可以了

        mysql> use mysql;
        mysql> update user set password=password("新密码") where user="root";
        

        然后刷新数据库。

        mysql> flush privileges;
        Query OK, 0 rows affected (0.00 sec)  
        mysql> quit;
        

        总结

        以上就是MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开解决方法汇总的详细内容,更多关于MySQL ERROR 1045的资料请关注PHP之友其它相关文章!

        您可能感兴趣的文章:
        • 解决ubuntu 16.04安装mysql5.7.17后,登录时出现ERROR 1045 (28000): Access denied for user ''root''@''localhost''问题
        • 新装MySql后登录出现root帐号提示mysql ERROR 1045 (28000): Access denied for use的解决办法
        • mysql登录报错提示:ERROR 1045 (28000)的解决方法
        • mysql登录遇到ERROR 1045问题解决方法

        www.htsjk.Com true http://www.htsjk.com/Mysql/48319.html NewsArticle MySQL登录时出现ERROR1045:Accessdeniedforuser‘root‘@‘localhost‘(usingpassword:YES)无法打开解决方法汇总, 目录 一、Bug描述 二、定位报错原因 三、解决方案汇总 方案一:重设密码(建议忘记...
        评论暂时关闭