Centos7解决MySQL登录ERROR 1045 (28000): Access denied for user ‘‘@‘localhost‘ (using
2023-04-18 14:45:39 时间
登录数据库时,发现数据库连接不上,报错如下:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor:yes)
为了以后方便排查,这里记录一下。
首先,停止MySQL服务
systemctl stop
mysqld.service
既然是密码错误,那么就先跳过密码验证的步骤
vim /etc/my.cnf
复制代码
然后,搜索mysqld,找到[mysqld](port=3306上面那个):
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)。
注:windows下修改的是my.ini。
在 [mysqld] 底下添加语句:
skip-grant-tables
复制代码
(注:skip-grant-tables:不启动grant-tables授权表,作为启动参数的作用:MYSQL服务器不加载权限判断,任何用户都能访问数据库)
这是用来跳过密码验证的,添加之后保存退出。
重新启动MySQL服务
systemctl restart mysqld.service
进入MySQL
mysql -u root -p
复制代码
出现密码输入时,不用输入直接按回车,就可以不用密码就能登录修改密码
使用mysql数据库
use mysql;
复制代码
mysql> update user set password=password("newpassword") where user="root";
复制代码
如果报错:
ERROR 1054(42S22) Unknown column 'password' in 'field list'
原因: 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
-
mysql> update user set authentication_string=password("newpassword") where user="root";
-
#刷新MySQL权限相关的表
-
mysql> flush privileges;
-
mysql> exit;
密码修改完毕
vim /etc/my.cnf
编辑my.cnf(Windows下my.ini),将上面添加的内容去掉(skip-grant-tables)。
重启MySQL
systemctl restart mysqld.service
使用新密码登录即可
相关文章
- 直接在代码里面对list集合进行分页
- .NET Framework 4.5新特性详解
- 大数据的简要介绍
- 大数据的由来
- 高斯混合模型的自然梯度变量推理
- timing-wheel 仿Kafka实现的时间轮算法
- 使用Navicat软件连接自建数据库(Linux系统)
- 那一天,我被Redis主从架构支配的恐惧
- Redis 深入了解键的过期时间
- C#使用委托调用实现用户端等待闪屏
- 基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统
- GRAND | 转录调控网络预测数据库
- JFreeChart API中文文档
- 临床相关突变查询数据库
- TIGER | 人类胰岛基因变化查询数据库
- 视频边缘计算网关EasyNVR在视频整体监控解决方案中的应用分析
- Apache Arrow - 大数据在数据湖后的下一个风向标
- 常见的电商数据指标体系
- AKShare-艺人数据-艺人流量价值
- MySQL中多表联合查询与子查询的这些区别,你可能不知道!