首页 > 数据库 >MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开解决方法

MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开解决方法

时间:2024-09-29 10:37:29浏览次数:8  
标签:1045 MySQL user mysql password root localhost

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 &

如果是linux系统。

使用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 x.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;

标签:1045,MySQL,user,mysql,password,root,localhost
From: https://www.cnblogs.com/shujuyr/p/18439076

相关文章

  • 【2024计算机毕业设计】基于jsp+mysql的JSP酒店预定管理系统
    运行环境:最好是javajdk1.8,我在这个平台上运行的。其他版本理论上也可以。IDE环境:Eclipse,Myeclipse,IDEA或者SpringToolSuite都可以,如果编译器的版本太低,需要升级下编译器,不要弄太低的版本tomcat服务器环境:Tomcat7.x,8.x,9.x版本均可操作系统环境:WindowsXP/7......
  • Python对数据库(MySQL,redis、MongoDB)的操作
    Python对数据库的操作(MySQL,redis、MongoDB)一、操作MySQL数据库安装pymysql:需要通过pipinstallpymysql进行安装。查询数据:fetchone、fetchmany(n)、fetchall()importpymysql#建立mysql连接,ip、端口、用户名、密码(passwd,不能写成其他,例如:pwd或者p,否则报错)、库名con......
  • 滚雪球学MySQL[6.1讲]:数据备份与恢复
    全文目录:前言6.数据备份与恢复6.1备份的基础知识6.1.1备份的重要性6.1.2备份的类型6.2备份策略6.2.1完全备份与增量备份结合6.2.2定期检查备份有效性6.2.3异地备份6.3MySQL备份工具6.3.1mysqldump6.3.2mysqlhotcopy6.3.3PerconaXtraBackup6.4数据恢复策......
  • 滚雪球学MySQL[5.1讲]:事务与并发控制
    全文目录:前言5.事务与并发控制5.1事务的基本概念5.1.1事务的ACID特性5.1.2事务的使用5.2并发事务的处理5.2.1锁机制详解5.2.2死锁的检测与解决5.3隔离级别与一致性5.3.1四种隔离级别5.3.2幻读、脏读与不可重复读5.4多版本并发控制(MVCC)下期内容预告前......
  • MySQL为什么使用B+树以及什么是覆盖索引和回表
    目录B+树什么是B+树B+树的特性        节点有序性        数据聚集性        查询稳定性        高扇出性MySQL为什么选择B+树        从范围查询的角度        从插入和删除的角度        从磁盘I/O的角......
  • MySQL 之多表设计详解
    在实际应用场景中,我们经常需要处理包含多种数据实体及其之间复杂关系的业务逻辑,例如电商平台的用户、商品、订单,社交网络的用户、帖子、评论等等。如果将所有数据都堆砌在一张表中,不仅会造成数据冗余、难以维护,还会严重影响查询效率。为了解决这些问题,我们需要采用多表设计,即......
  • MySQL 数据类型详解
    在MySQL数据库中,数据类型的选择对性能和存储效率有着至关重要的影响。选择正确的数据类型可以最大限度地利用资源,并提高查询速度。一、数值类型详解数值类型用于存储数字数据,根据数据范围和精度需求,MySQL提供多种整数和浮点数类型。1.整数类型类型大小(字节)范围性能用途......
  • MySQL安全加固
    安装mysql下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysq1-5.6.33-linux-glibc2.5x86_64.tar.gz解压:tar-zxvfmysql-5.6.33-linux-glibc2.5-x86_64.tar.gz复制解压后的mysql目录:cp-rmysql-5.6.33-linux-glibc2.5-x8664/usr/local/mysql添加用户组groupaddmysql......
  • MySQL 中的 FOREIGN KEY 约束:确保数据完整性的关键
    在MySQL数据库中,FOREIGNKEY(外键)约束是一种非常重要的机制,它可以帮助我们确保数据的完整性和一致性。那么,FOREIGNKEY约束究竟是什么呢?让我们一起来深入了解一下。一、什么是FOREIGNKEY约束?FOREIGNKEY约束是一种用于建立两个表之间关系的约束。它通过在一个表中定义一个......
  • MySQL 性能剖析全攻略
    在使用MySQL数据库的过程中,性能问题往往是让开发者和管理员头疼的难题。为了有效地解决这些问题,我们需要对MySQL进行性能剖析。那么,如何在MySQL中进行性能剖析呢?本文将为你详细介绍。一、为什么要进行性能剖析?MySQL数据库在运行过程中,可能会出现各种性能问题,如查询速度慢......