当前位置:网站首页>关于mariadb/mysql的user表:密码正确但登录失败,可能与mysql的空用户有关
关于mariadb/mysql的user表:密码正确但登录失败,可能与mysql的空用户有关
2022-07-30 14:30:00 【hgswnsa】
怎么查看user表
使用 select * from user; 命令可以查看user表,但这个结果 “不太好看”

我们可以接个 \G,也就是使用 select * from user \G; 命令更优雅的查看user表
\G 的作用是将查到的结构旋转90度变成纵向
这种输出就非常的 “好看” 了
user表中的空用户
user表中的空用户也就是 User 字段为空的用户
为什么要小心空用户呢?
假如你新建了一个用户,用户名为lihua,密码为123123,这时你要登录lihua用户,可能就会发现明明用户名密码都没有输错,user表里面也有lihua这个用户,但就是登不上去
创建并授权lihua用户所有权限,密码为123123,然后刷新权限
退出当前用户,使用lihua进行登录,发现用户名密码没错却登录不了
使用root用户登录,查看user表,user表里面确实有lihua,但就是登录不了
这是什么原因呢?
不要慌,我们看看前面几行,发现第5行和第6行的用户名为 “空”

mysql在验证权限的时候,首先是验证Host列,如果Host列存在,然后验证User列,再验证Password列,执行 mysql -u lihua -p 按照Host列首先找到第5行,然后发现这行的User列为空(空匹配所有用户名),所以匹配到了这条记录,然后发现这条记录的密码为空,所以当我输入密码时,就会报错。
不输入密码不会报错,并且可以登录进去,不过这时登录进去的 lihua 是空用户,而不是我授权了所有权限的 lihua
可以看到他的权限很低
怎么办?
两种方法: 删除空用户或者调换行序
删除空用户
从user表中删除用户名为空的用户,空匹配所有用户名,会影响后面的用户。
命令:delete from user where User='';
这时使用lihua用户登录,输入密码,确实登录成功了,而且可以验证一下,这是不是特权lihua
总结
如果遇到这种用户名密码都正确,但无法登录的 “奇怪” 事件时,不要慌,看看是不是空用户在 “装神弄鬼”
不同版本的mysql 情况可能不一样,有的版本就没有空用户
边栏推荐
- JUC常见的线程池源码学习 02 ( ThreadPoolExecutor 线程池 )
- Start learning C language
- MaxWell抓取数据
- 如何在 TiDB Cloud 上使用 Databricks 进行数据分析 | TiDB Cloud 使用指南
- 获取Google Advertising ID作为唯一识别码
- Digital signal processing course lab report (what foundation is needed for digital signal processing)
- Eight years of testing experience, why was the leader criticized: the test documents you wrote are not as good as those of fresh graduates
- Smart Contract Security - Private Data Access
- 一文读懂网络效应对Web3的重要意义
- Before quitting, make yourself a roll king
猜你喜欢

SLF4J的使用

那些破釜沉舟入局Web3.0的互联网精英都怎么样了?

canal scrape data

71页全域旅游综合整体解决方案2021 ppt

Before quitting, make yourself a roll king

The highest level of wiring in the computer room, the beauty is suffocating

5. DOM

What is the relationship between the construction of smart cities and 5G technology in the new era

吃透Chisel语言.29.Chisel进阶之通信状态机(一)——通信状态机:以闪光灯为例

The truth of the industry: I will only test those that have no future, and I panic...
随机推荐
4位资深专家多年大厂经验分享出Flink技术内幕架构设计与实现原理
postgresql的普通字符串和转义字符串
MongoDB starts an error Process: 29784 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14)
吃透Chisel语言.28.Chisel进阶之有限状态机(二)——Mealy状态机及与Moore状态机的对比
机房布线的至高境界,美到窒息
How to use Databricks for data analysis on TiDB Cloud | TiDB Cloud User Guide
Start learning C language
CS内网横向移动 模拟渗透实操 超详细
MPSK抗噪声性能对比(即MPSK标准误码率曲线)
Chapter6 : Has Artificial Intelligence Impacted Drug Discovery?
[机缘参悟-53]:《素书》-3-修身养志[求人之志章第三]
【回归预测-lssvm分类】基于最小二乘支持向量机lssvm实现数据分类代码
ESP32 Repeated Reboot Issue Arduino Shield Power Outage Detector
算力顶天地,存力纳乾坤:国家超级计算济南中心的一体两面
从实例来看DAO:权力分散的伟大尝试
Flask Framework - Sijax
Ts是什么?
Hello,World
【元胞自动机】基于元胞自动机模拟生命演化、病毒感染等实例附matlab代码
学习 MySQL 需要知道的 28 个小技巧