首页 > 数据库 >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-30 09:00:51浏览次数:1  
标签: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/ataoxz/p/18441120

相关文章

  • mysql数据库多表查询
    单表查询1、普通查询(1)命令:select*from<表名>;//通匹(2)命令:select<要查询的字段>from<表名>;2、去重查询(distinct) 命令:select distinct <要查询的字段>from<表名>3、排序查询(orderby) 升序:asc降序:desc降序排列命令:select<要查询的字段名>from<表名>orderby<......
  • 【MySQL】数据库中的内置函数
    W...Y的主页......
  • 基于Python+flask+MySQL+HTML的全国范围水质分析预测系统,可视化用echarts,预测算法随机
    1绪论近年来,水质监测系统的进步显著,这在全球环保意识不断提升的背景下尤为明显。大量资源被投入到水质监测技术的研发和应用中,以不断优化监测效能。水资源的保护及健康环境的维护,这种趋势旨在提升人们生活质量,确保优质的生活条件。通过持续不懈的努力,我们得以实现对水质的及......
  • MySQL8主从搭建
    MySQL8主从搭建基础环境基本信息:虚拟化软件:OracleVMVirtualBox1C/2G1个网卡80G系统盘oracle:mysql-8.0.20yum:CentOS-7.6-x86_64-DVD-1810.iso服务器IP规划:主机名mysql1mysql2mysql3系统CentOS-7.6CentOS-7.6CentOS-7.6IP192.168.56.41192.168.56.42192.168.56.......
  • MySQL数据库初级学习笔记---第一章-数据库概述
    第一章-数据库概述聊聊数据库数据库是一门独立的学科,只要是做软件开发的,数据库都要学。数据库(电子化的文件柜)是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。它的存储空间很大,可以存放百万条......
  • MySQL 默认 only_full_group_by
    ONLY_FULL_GROUP_BY是MySQL中的一个SQL模式,它要求在使用GROUPBY语句时,SELECT列表、HAVING条件或ORDERBY列表中的每个列,要么是聚合函数的一部分(如COUNT(),SUM(),AVG()等),要么必须在GROUPBY子句中明确指定。这个模式的设计初衷是增强查询的准确性和可预测性,避免因为列的不明确引......
  • PbootCMS数据库配置,修改为Mysql数据库,配置Mysql出错解决办法
    在PbootCMS中,如果你需要将默认的SQLite数据库切换为MySQL数据库,可以按照以下步骤进行操作。以下是详细的步骤和示例代码:1.导入MySQL数据库文件备份现有数据:确保先备份现有的SQLite数据库。导入MySQL数据库文件:将MySQL数据库文件(位于/static/backup/sql/xxx.sql)导入到MySQL......
  • MySQL窗口函数总结(三)
    MySQL窗口函数(WindowFunctions)是一种高级的SQL查询技巧,它允许在结果集的一组相关行上执行计算。窗口函数可以用于处理分组、排序、累计等复杂的聚合任务,使得查询更加简洁和高效。在MySQL8.0及更高版本中,支持窗口函数。以下是一些常用的窗口函数:ROW_NUMBER():为结果集中的......
  • MySQL窗口函数汇总(二)
    MySQL窗口函数详解MySQL从8.0版本开始引入了窗口函数,这是一个强大的特性,可以大大简化复杂的数据分析任务。本文将详细介绍MySQL窗口函数的概念、语法和常见用法,并结合实际应用场景进行说明。什么是窗口函数?窗口函数是一种能够对结果集中的一组行进行操作的函数。它们类似于聚合函......
  • shell脚本——检索mysql数据库中得用户,如果没有就创建
     #!/bin/bash#author:goujinyangset-eUSER1=mysqlsiUSER2=dbqueryUSER3=dboperUSER4=yyzcUSERS=($USER1$USER2$USER3$USER4)USER_PASS=123123#MySQL用户名和密码MYSQL_USER="root"MYSQL_PASSWORD="Root#123"#MYSQL_HOST="local......