全面分析MySQL?ERROR?1045出现的原因及解决

news2024/10/7 17:36:02
目录
  • 通常从网上都能找到解决方案
    • 1.停止服务
    • 2.跳过验证
    • 3.修改密码
    • 4.重启服务
  • 原因分析
  • SO 解决办法

在命令行输入mysql -u root –p,输入密码,或通过工具连接数据库时,经常出现下面的错误信息,相信该错误信息很多人在使用MySQL时都遇到过。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)  

通常从网上都能找到解决方案

1.停止服务

停止MySQL服务;

?

1

2

3

4

# windows

net stop mysql

# linux

service mysqld stop

2.跳过验证

修改MySQL安装目录下的my.ini配置文件,使登录时跳过权限检查;

?

1

2

3

4

#到mysql根目录找到mysql配置文件

vim my.ini

#在my.ini,[mysqld]下添加一行,使其登录时跳过权限检查

skip_grant_tables

3.修改密码

启动MySQL服务,登录MySQL,此时提示输入密码,输入任意密码回车即可进入MySQL。

?

1

2

#登录mysql

mysql -u root -p

然后通过SQL语句修改root用户的密码;

?

1

2

3

4

5

6

7

#将数据库切换至mysql库

mysql> USE mysql;

#修改密码

mysql> UPDATE user SET password=PASSWORD(‘newpasswd')WHERE user='root';

#刷新MySQL权限相关的表

mysql> flush privileges;

mysql> exit;

4.重启服务

将my.ini文件中加入的跳过权限语句删除或加#号注释。

重启服务,使用修改后的密码登录即可。

原因分析

使用root用户登录MySQL,查看user表中的用户信息如下,可以发现host的字段分别为%和localhost。

?

1

mysql>select host,user,password from user;

在MySQL中’%'表示可以在任何主机上登录MySQL数据库,那为什么还需要明确创建登录主机为localhost的用户呢?

这涉及到MySQL安装时的初始化用户,匿名用户以及连接验证策略等

下面进行深入的分析。

在安装MySQL时,会默认初始化一些用户,比如root用户,以及host字段为localhost,user字段为空的用户。

User字段为空的用户即为匿名用户,该用户的密码也为空,任何人都可以使用匿名用户登录MySQL数据库,但可以做的事情却是有限的,比如在命令行直接输入mysql登录,可以查看匿名用户对哪些数据库有权限:

?

1

mysql>select current_user;

?

1

mysql>show databases;

通过上面的图片可以发现,匿名用户仅对information_schema和test数据库有权限。

而匿名用户又是如何影响其他用户登录,进而出现28000错误的呢?

当试图连接MySQL数据库时,数据库根据提供的身份和密码决定是否接受连接请求,身份由两部分组成:用户名和客户端主机(即输入mysql命令的主机)。

由于host字段中的%匹配任何主机或者host字段包含通配符,就可能出现多个匹配行,服务器必须决定匹配哪一个,服务器将user表中的数据读入内存中,按照host和user字段对行进行排序。

?

1

mysql>select host,user,password from user order by host desc,user desc;

当客户端试图连接时,服务器查找已排序的行并使用第一个匹配客户端主机和用户名的行,找到匹配行后,在验证密码是否一致,如果一致则登录成功。

user字段为空则表示可以匹配任何用户。

此处关注:

user为空,即任意用户,不使用密码登录localhost时,匿名用户仅对information_schema和test数据库有权限,使用其他数据库时,导致失败。

如果user为root,密码显示为空,或host字段显示为非’%'的时候,按照默认的匹配顺序,或者提示密码错误或者提示为ERROR 1045。

下图已修改完善,仅作参考,比如第一序列中,host为localhost或127回环地址的情况下,则会发生1045错误。

SO 解决办法

?

1

2

3

4

mysql> select host,user,password from user order by host desc,user desc;

## 将排序序列中最前面的用户修改host为'%'

mysql> update user set host = '%' where host = 'oracle' and user = 'root';

mysql> flush privileges;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/726718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Kali Linux 暴力破解wifi密码详细步骤

使用Kali Linux 暴力破解wifi密码详细步骤所谓暴力破解就是穷举法,将密码字典中每一个密码依次去与握手包中的密码进行匹配,直到匹配成功。所以能否成功破解wifi密码取决于密码字典本身是否包含了这个密码。破解的时间取决于CPU的运算速度以及密码本身的…

信息安全-数据安全-数据安全平台建设实践

背景 在大数据时代,数据已经成为公司的核心竞争力。此前,我们介绍了美团酒旅起源数据治理平台的建设与实践,主要是通过各种数据分析挖掘手段,为公司发展决策和业务开展提供数据支持。 近期,业内数据安全事件频发&…

日本社交网络市场:Facebook 与本土巨头的竞争分析

摘要:Facebook作为全球最大的社交媒体平台之一,成功地击败了日本的本土社交网站,包括Mixi、DeNA和Gree等。 社交媒体在全球范围内迅速崛起,改变了人们的社交方式和信息传播方式。然而,在不同国家和地区,由于…

尚硅谷Docker实战教程-笔记08【高级篇,Docker复杂安装详说】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【基础篇,Docker理念简介、官网介绍、平台入门图解、平台架构图解】…

易基因: DNA甲基化差异水平分析中的DMC、DMR、DMG鉴定 | 干货分享

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 DNA甲基化(DNA methylation)为DNA化学修饰的一种形式,能够在不改变DNA序列的前提下,改变遗传表现。所谓DNA甲基化是指在DNA甲基化转移酶的…

跑深度学习nvidia驱动忽然实效的详细解决方法

由于经常跑深度学习,所以对于显卡驱动什么的都还是整的比较明白的不含糊,所以都能跑的起来。但是今天跑pytorch框架时(用到cuda)忽然给我报了个错: RuntimeError: No CUDA GPUs are available这给我整不会了&#xff…

HarmonyOS学习路之开发篇—数据管理(轻量级数据存储)

轻量级数据存储概述 轻量级数据存储适用于对Key-Value结构的数据进行存取和持久化操作。应用获取某个轻量级存储对象后,该存储对象中的数据将会被缓存在内存中,以便应用获得更快的数据存取速度。应用也可以将缓存的数据再次写回文本文件中进行持久化存储…

设计模式之装饰者模式-TS中装饰器介绍

装饰器的基本介绍 装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,访问符,属性或参数上。 装饰器使用expression这种形式,expression求值后必须为一个函数,它会在运行时被调用,被装饰的…

LoRA原理解析

文章目录 前言现有方案存在的问题Adapter TuningPrefix Tuning LoRA总结 前言 随着模型规模的不断扩大,微调模型的所有参数(所谓full fine-tuning)的可行性变得越来越低。以GPT-3的175B参数为例,每增加一个新领域就需要完整微调一…

界面组件DevExpress ASP.NET Core v23.1新版亮点 - 增强的数据可视化

DevExpress ASP.NET Core Controls使用强大的混合方法,结合现代企业Web开发工具所期望的所有功能。该套件通过ASP.NET Razor标记和服务器端ASP.NET Core Web API的生产力和简便性,提供客户端JavaScript的性能和灵活性。ThemeBuilder工具和集成的Material…

纯LiDAR Odometry——LinK3D论文详解

先说总结 总体思路是:针对输入来的点云,对每一个scan进行edge特征点的提取,因为提取的特征点因为噪声等原因导致特征点不鲁棒,所以又对特征点通过聚类的方法进行了特征增强,对增加后的特征投影到平面上,分别…

无线通信模块|wifi模块、BLE蓝牙模块、wifi蓝牙二合一模块科普介绍

物联网技术能够帮助智能家居环境中的门厅场景、客厅场景、厨房场景、卧室场景以及阳台场景的智能化管理。现如今智能家居和智能应用之间的配合离不开物联网模块的帮助。没有WiFi模块智能家居就不能很好的工作,甚至不能很好的进行数据的交换。现阶段的物联网智能家居…

程序员必须知道的加密、解密和签名算法

1. 对称加密 对称加密,加密和解密使用相同的秘钥,加密速度快、效率高。常见的有 DES(淘汰)、3DES(淘汰)、AES(用于替代 DES,是目前常用的)等。 加密解密 1.1. DES&#…

建造者模式:详解构造函数、set方法、建造者模式三种对象创建方式

思考: 为什么需要建造者模式 与工厂模式有何区别? 为什么需要建造者模式? 平时常常使用new关键字来创建对象,什么时候new对象时候不适用了呢?可能是创建对象时候可能是构造函数中传入太多的内容吧。 下面通过一个例子…

基于Java电脑硬件库存管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

Linux下从CPU/内存/IO三个方面来分析系统性能

在实际生产环境中是否遇到如下问题? 系统平均负载过高。 CPU使用率过高。 硬盘利用率已经饱和,IO存在瓶颈。 首先明确一下进程的常见6种状态 R运行状态(running):并不意味着进程一定在运行中,它表明进程要…

钉钉聊天对话框和截图经常发生白屏

环境: 7.0.30-rel6019102 Win10专业版 L盾加密环境 问题描述: 钉钉聊天对话框和截图经常发生白屏 解决方案: 1.【电脑端钉钉】- 左上角【头像】-【设置】-【高级】- 下拉【网络检测】- 点击【开始检测】 如果变红说明网络有问题&#x…

redis安装后启动报redis-server.exe redis.windows.conf

文章目录 1. 报错的内容2. 解决方法:(亲测有效) 1. 报错的内容 redis安装后启动报redis-server.exe redis.windows.conf 完整报错如下: 2. 解决方法:(亲测有效) 先使用命令切换到redis安装目…

Redis常用命令操作

#linux是redis-cli #普通环境 redis-cli.exe -h host -p port -a password #集群环境,否则报:(error) MOVED 6918 127.0.0.1:6381 redis-cli.exe -c -h host -p port -a password#参数说明 #host:远程redis服务器host #port:远程r…

开发人员必备:9个令人惊叹的CSS网格生成器推荐!

微信搜索 【大迁世界】, 我会第一时间和你分享前端行业趋势,学习途径等等。 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。 快来免费体验ChatGpt plus版本的,我们出的钱 体验地…