MySQL登录时报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘解决办法

news2024/11/17 13:51:22
  1. 问题描述

在云服务器使用 docker安装的Mysql5.7数据库,刚开始的时候使用正常,后面突然有一天就连接不上了,报错为: ERROR 1045 (28000): Access denied for user 'root'@'1xxx'(using password:YES), 当登录MySQL数据库出现 Error 1045 错误时,表明输入的用户名或密码错误 被拒绝访问了
  1. 原因分析

  • mysql的服务器停止

  • 用户的端口号或者IP导致

  • mysql的配置文件错误:my.ini等文件

  • root用户的密码错误

注意: MySQL服务搭建后, 默认root用户是不能进行远程访问连接的
  1. 具体解决办法

通过下面各个检查步骤,排除上面错误

(1).检查mysql服务是否启动

当mysql的服务器停止时,会报上面的错误,这里使用的是docker,故使用 docker ps命令查看mysql相关服务是否正常
#查看docker 相关服务
docker ps
...
#进入docker-mysql
docker exec -it docker_mysql bash
...
#进入mysql
 mysql -uroot -p
#然后输入密码
...
通过上面命令可以检测mysql是否启动,

(2).修改mysql密码

MySQL服务搭建后, 默认root用户是不能进行远程访问连接的,或者root用户的密码错误,也会报上面错误,故进行mysql密码修改来排除

1).查看临时密码

首次安装的mysql是没有修改过密码的,使用下面命令查看生成的临时密码
grep "A temporary password is generated for root@localhost" /var/log/mysqld.log

2).登入

mysql -uroot -p
#然后输入临时密码,进入mysql端

3).修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
localhost代表的是地址, root代表 数据库密码,root可以修改为自己的密码

执行上面代码,可能会报错:

解决办法:

查看当前密码策略
show variables like '%validate_password_policy%';
show variables like '%validate_password_length%';
修改密码策略
修改长度和弱度
set global validate_password_policy=0; #设置为弱口令
set global validate_password_length=1; #密码最小长度为1

再次修改

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

刷新

flush privileges;

退出

quit;

重新登录

mysql -uroot -p
show databases;

(3).开启远程访问

use mysql;                                           #访问mysql库
update user set host = '%' where user = 'root';     #使root能在任何的host访问
FLUSH PRIVILEGES;                                    #刷新
在执行上面update时,也许会报错:
Duplicate entry ‘%-root’ for key ‘PRIMARY’
这是因为 有多个ROOT用户纪录在USER表中了, 最好是把除了host为’%'或者为’localhost’的其他user字段为root的用户删除掉,然后利用命令 FLUSH PRIVILEGES 刷新即可解决该问题
使用 select host from user where user = 'root';查看一下host是否已经有了 %这个值
然后 利用命令 FLUSH PRIVILEGES 刷新,这样就解决了上面的问题,再次连接数据库,看看是否成功

(4).修改mysql配置

1).方法一

在my.cnf的[ mysqlId]里面加配置
skip-grant-tables 
这个配置是可以实现远程登陆,但是跳过权限直接写在配置文件里的这种做法 不建议使用

2).方法二

使用以下命令操作
grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;

FLUSH PRIVILEGES;
通过mysql -uroot -p 命令,并输入密码进入数据库
mysql -uroot  -p
然后执行下面命令
grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;
刷新并退出
FLUSH PRIVILEGES;
exit;

(5).总结

通过以上排除方法就可以解决 ERROR 1045 (28000)_ Access denied for user 'root'@'localhost'报错了
注意:
如果mysql是docker部署的,当每次重启容器时,可能需要再一次跑一下 步骤(4).修改mysql配置 这个命令,这个也有解决的办法:
#配置mysql密码还有默认的身份验证插件-解决每隔一段时间就会登陆不上问题
#身份插件-mysql_native_password 本地密码
default_authentication_plugin=mysql_native_password
#密码失效时间-永不过期
default_password_lifetime=0

其他解决办法:

docker exec -it 进入mysql,执行下面命令解决:
主要是 mysql_native_password 这个参数要注意
mysql -u root -p
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges; 
exit;

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

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

相关文章

python套接字(三):结合pyside2实现多人聊天室

文章目录 前言一、准备1、安装pyside22、设计界面 二、代码实现1、服务器端2、客户端 三、运行 前言 上一章python套接字(二):实现一个服务器和多客户端连接,大概实现了多人聊天室功能,但是比较简陋,本篇内容将结合pyside2做一个…

车间主任、班组长必读:生产车间的现场管理

与工厂车间操作层(一线员工)接触最多的基层管理者,即我们通常所说的班组长、车间主任等,他们是将企业战略规划落实到具体工作当中的终端管理者。 一线班组长的“角色” 1、责任者 对企业来说,班组长是基层的治理员&am…

MySQL高级篇第二天

文章目录 一、Mysql的体系结构概览 二、 存储引擎 三、优化SQL步骤 一、Mysql的体系结构概览 整个MySQL Server由以下组成 Connection Pool : 连接池组件 Management Services & Utilities : 管理服务和工具组件 SQL Interface : SQL接口组件 Parser : 查询分析器组件 O…

游戏测试与一般的软件测试的区别在哪里?

有很多同学进入测试行业之后,一直从事的是软件测试的工作,然后跳槽时遇到一些游戏的公司的面试,就会有点慌,我做的都是软件测试,能胜任游戏测试么? 所以,今天我们需要先来了解一下,…

科技政策 | 《深圳市加快加快推动人工智能高质量发展高水平应用行动方案(2023—2024年)》发布

原创 | 文 BFT机器人 导语 Introduction 近日,深圳市发布了《深圳市加快推动人工智能高质量发展高水平应用行动方案(2023-2024年)》旨在以更大热情拥抱创新,打造最好生态,推动人工智能高质量发展和全方位各领域高水平…

C语言-关键字

关键字就是c语言已经定义好的名字,直接可以拿过来使用,不需要再次定义 1 数据类型相关的关键字 用于定义变量或者类型 定义变量的语法结构: 类型 变量名; 拓展:变量名属于标识符,标识符(变量…

关于Axios发请求(get或post)的参数问题

版本说明: {"name": "wx_vue_3.0","version": "0.1.0","private": true,"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build"…

K-Means聚类算法

引言 聚类算法是传统机器学习算法中比较重要的一个算法,也是工程项目当中一个比较常用的算法。 一. 分类与聚类 分类 分类其实是从特定的数据中挖掘模式,作出判断的过程。 分类学习主要过程: (1)训练数据集存在一个类…

mathtype公式右编号对齐

mathtype公式右编号对齐 1.选中文中编辑好的公式,复制 2.mathtype里的点击右编号,将上面复制的公式粘贴到新出现的框内 3.编号设置

聚类效果评估

目录 1.轮廓系数(Silhouette Coefficient) 1.1 为什么轮廓系数可以评价聚类效果的好坏? 1.2 平均轮廓系数 2. 其他聚类质量函数 2.1方差比准则(Variance Ratio Criterion, VRC) 2.2 戴维斯-博尔丁指数(Davies-Bouldin指数,DB指数) 评价聚…

linux- 定时任务清理日志

定时任务清理日志 一、查找并删除文件1.1 查找文件1.2 查找并删除 二、计划任务:2.1 创建shell脚本,并分配权限2.2 编辑shell脚本2.3 计划任务 linux是一个很能自动产生文件的系统,在实际部署运行中,发现日志文件会占用大量内存&a…

SpringBoot+Thymeleaf 后端转html,pdf HTML生成PDF SpringBoot生成PDF Java PDF生成

SpringBoot 生成PDF Thymeleaf企业级真实应用:将HTML界面数据转换为PDF输出 参考: https://blog.51cto.com/u_13146445/6190475 https://blog.csdn.net/qq_27242695/article/details/115654447 0. 需求 后端渲染pdf生成 (thymeleaf根据已有…

Android开发之数据传递的桥梁——Bundle

解释 在安卓sdk源码中,Bundle类的说明是这样的 A mapping from String keys to various Parcelable values. See Also: PersistableBundle public final class Bundle extends BaseBundle implements Cloneable, Parcelable 字符串的键到持久化值的映射。 作用 …

只用2个小时,我把公司的进销存流程全部搬到了线上!

目录 一、前言 二、线下流程的弊端 三、仅用2个小时,如何将流程搬到线上? (1)基础资料模块 (2)采购管理模块 (3)销售管理模块 (4)库存管理模块 &…

MySQL之视图,触发器与存储过程

一、视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的…

基于虚拟化的物联网沙盒操作系统

了解她的技术 先谈谈虚拟化吧! 为什么要有虚拟化?物理CPU,物理内存和存储,物理网络的硬件能力越来越丰富的情况下,为了高效、灵活的使用资源,以及在使用时的资源隔离,把硬件资源抽象成软件资源…

机器学习第一课

实现流程: 数据输入->数据基本处理->特征工程->训练->模型评估->新数据输入->预测结果 数据类型: 类型一:特征值目标值 类型二:只有特征值 一、数据基本处理 达到的标准 二、特征工程 三、机器学习&#…

Java+Swing+mysql图书管理系统

JavaSwingmysql图书管理系统 一、系统介绍二、功能展示1.管理员登陆2.图书查询3.图书入库4.借书5.还书6.图书证管理 三、系统实现1.BookManageMainFrame.java 四、其它1.其他系统实现2.获取源码 一、系统介绍 该系统实现了 用户: 书籍查询,借书,还书功能…

本地serve跑vue或者react打包后的项目

本地跑vue或者react打包后的项目 不需要本地服务器跑打包后的build文件夹(也可能是 dist文件夹)项目。 一般方案: 方案一:本地电脑运行serve服务(本文~~)方案二:vscode编辑器安装拓展【live …

KEGG注释:KEGG富集可视化柱状图

很久很久以前,看到过文章中的KEGG富集可视化结果图。是对KEGG通路进行注释的。后来在一些测序公司的宣传页上也见到过类似的图: image.png image.png 其实这个图就是多了一个KEGG通路注释,近期也有小伙伴寻求怎么做。网上很多在线工具可以完…