实例分析mysql用户登录

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
今天,在学习 mysql 授权认证时,遇到了一个问题,看下,我是如何分析的:

 

我在数据库内添加了一个帐号:
create databases firstdb;

grant all on firstdb.* to ‘firstdb’@’’ identified by ‘xxxxx’;

flush privileges;

( 原计划用firstdb 帐号登录能看到firstdb 数据库,没想到发生了下面的故事,继续看,你也会成长的。)

我这样登录, mysql –ufirstdb –p   输入密码,可提示:

[root@wikiob ~]# mysql -ufirstdb -p

Enter password:

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

我的密码,肯定没有问题,通过提示分析,我现在用的登录是 localhost+firstdb

,但我定义的是任意主机,感觉没有匹配我想要的情况。

分析:

看下 mysql.user 表的情况

(root@badboy:)[(none)]>select host,user,password from mysql.user;

+---------------------+---------+-------------------------------------------+

| host                | user    | password                                  |

+---------------------+---------+-------------------------------------------+

| localhost           | root    | D8BF0760B25D47A3EBF34F |

| wikiob.badboy.com | root    | 0760B25D47A3EBF34F |

| 127.0.0.1           | root    | 760B25D47A3EBF34F |

| localhost           |         |                                           |

| wikiob.badboy.com |         |                                           |

| localhost           | mantis  | 36D0D144BDC21263CCFF |

| localhost           | dvbbs   |D1C26E56446E9DE2F52813 |

| 192.168.1.162       | root    | 4D8BF0760B25D47A3EBF34F |

| 192.168.2.215      | root    | 4D8BF0760B25D47A3EBF34F |

|                     | firstdb | 18BB99005ADCA2EC9D1E19 |

| localhost           | test_db | 2A1F959FD02F964C7AF4CFC29 |

+---------------------+---------+-------------------------------------------+

11 rows in set (0.00 sec)

我们根据 mysql 在加载授权表时,要排序,最终排序结果:

+---------------------+---------+-------------------------------------------+

| host                | user    | password                                  |

+---------------------+---------+-------------------------------------------+

| localhost           | root    | D8BF0760B25D47A3EBF34F |

| localhost           | mantis  | 36D0D144BDC21263CCFF |

| localhost           | dvbbs   |D1C26E56446E9DE2F52813 |

| localhost           | test_db | 2A1F959FD02F964C7AF4CFC29 |

| localhost           |         |                                           |

| wikiob.badboy.com | root    | 0760B25D47A3EBF34F |

| wikiob.badboy.com |         |                                           |

| 127.0.0.1           | root    | 760B25D47A3EBF34F |

| 192.168.1.162       | root    | 4D8BF0760B25D47A3EBF34F |

| 192.168.2.215      | root    | 4D8BF0760B25D47A3EBF34F |

|                     | firstdb | 18BB99005ADCA2EC9D1E19 |

+---------------------+---------+-------------------------------------------+

 

这样的话,我刚刚输入的 mysql –ufirstdb –p 就匹配了第 5 行,也就是说,客户端是 localhost ,帐号是任意,密码为空。

根据前面的判断,我不输入密码试下;

[root@wikiob ~]# mysql -ufirstdb -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 18

Server version: 5.1.30-log Source distribution

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

(wiki@badboy:)[(none)]>

好,可以进去了。我现在来看看,我的登录帐号信息:

(firstdb@badboy:)[(none)]>select CURRENT_USER();

+----------------+

| CURRENT_USER() |

+----------------+

@localhost     |

+----------------+

1 row in set (0.00 sec)

看到没,是匿名帐号,和我前面判断的没错 , 那看下这个帐号下的数据库有哪些 ….

(firstdb@badboy:)[(none)]>show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| test               |

| test_db            |

+--------------------+

3 rows in set (0.00 sec)

这三个数据库是怎么在匿名帐户下呢?继续分析

看下 mysql.db

(root@badboy:)[(none)]>select host,user,db from mysql.db;         

+-----------+---------+---------+

| host      | user    | db      |

+-----------+---------+---------+

|           | firstdb | firstdb |

| %         |         | test    |

| %         |         | test\_% |

| localhost | dvbbs   | discuz  |

| localhost | mantis  | mantis  |

| localhost | test_db | test_db |

+-----------+---------+---------+

6 rows in set (0.00 sec)

再排序一次:

(root@badboy:)[(none)]>select host,user,db from mysql.db;         

+-----------+---------+---------+

| host      | user    | db      |

+-----------+---------+---------+

| localhost | dvbbs   | discuz  |

| localhost | mantis  | mantis  |

| localhost | test_db | test_db |

|           | firstdb | firstdb |

| %         |         | test    |

| %         |         | test\_% |

+-----------+---------+---------+

6 rows in set (0.00 sec)

根据前面登录的是匿名用户,那么只能是最后两行是匹配我的 show databases;

 

通过这个实例,大家一定学会了,在 grant 一个帐号后,用此帐号登录后发现不是自己想要的结果 , 如何排除问题喽,加油! ~



本文转自hahazhu0634 51CTO博客,原文链接:http://blog.51cto.com/5ydycm/253382,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL 索引
mysql 分析5语句的优化--索引添加删除
mysql 分析5语句的优化--索引添加删除
16 0
|
1月前
|
安全 关系型数据库 MySQL
轻松入门MySQL:MySQL8权限管理详解,角色和用户操作实例(18)
轻松入门MySQL:MySQL8权限管理详解,角色和用户操作实例(18)
|
1月前
|
关系型数据库 MySQL 数据挖掘
轻松入门MySQL:利用MySQL时间函数优化产品销售数据统计与分析(9)
轻松入门MySQL:利用MySQL时间函数优化产品销售数据统计与分析(9)
|
2月前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
102 0
|
8天前
|
Prometheus 监控 Cloud Native
使用mysqld_exporter监控所有MySQL实例
使用mysqld_exporter监控所有MySQL实例
40 2
|
1月前
|
SQL 缓存 关系型数据库
mysql性能优化-慢查询分析、优化索引和配置
mysql性能优化-慢查询分析、优化索引和配置
106 1
|
1月前
|
缓存 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
|
14天前
|
分布式计算 DataWorks 关系型数据库
DataWorks操作报错合集之DataWorks集成实例绑定到同一个vpc下面,也添加了RDS的IP白名单报错:数据源配置有误,请检查,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
28 0
|
15天前
|
存储 关系型数据库 MySQL
MySQL 8 索引原理详细分析
了解索引的详细原则,不仅有助于优化,能把索引搞清楚的,面试中优势也会很突显。 关于数据库优化的话题,V哥觉得还有很多地方可以聊,如果你有兴趣,欢迎关注一起讨论。
MySQL 8 索引原理详细分析
|
15天前
|
DataWorks NoSQL 关系型数据库
DataWorks操作报错合集之在使用 DataWorks 进行 MongoDB 同步时遇到了连通性测试失败,实例配置和 MongoDB 白名单配置均正确,且同 VPC 下 MySQL 可以成功连接并同步,但 MongoDB 却无法完成同样的操作如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
31 1