user表中存在多条相同user不同host用户信息时MySQL该匹配哪条记录登录?
问题:
当用户名相同,但主机名不同的多条记录。用户由不同主机登录时,选择使用那条记录来验证,数据库版本为:5.6.25
如:IP为192.168.141.241 hostname为vhost02主机上的MySQL上有下面几个用户:
test01@localhost、test01@127.0.0.1、test01@192.168.196.128、test01@192.168.196.%、test01@vhost02 、test01@vhost03
如果要用root用户登录数据,数据库会选择哪个用户?
实验结论:
1.仅当用户的host='localhost'存在时,不指定-h可以登录;
2.其它情况,本机登录,-h 指定为什么(localhost,127.0.0.1,IP)就用host等于什么的用户登录;
3.其它情况,异地登录,登录机器IP为多少就用能够与它匹配的host登录(host越具体,此用户优先级越高)。
4.实验证明,-h指定为hostname,即使有hostname记录用户也不能通过hostname登录;
5.实验证明,-h指定为hostname,且配置/etc/hosts中对应hostname的记录时,将-h hostname 转化为-h IP登录;
测试过程:
mysql> create user test01@'localhost' identified by 'localhost'; Query OK, 0 rows affected (0.25 sec)
mysql> create user test01@'127.0.0.1' identified by '127001'; Query OK, 0 rows affected (0.00 sec)
mysql> create user test01@'192.168.196.128' identified by '192168196128'; Query OK, 0 rows affected (0.01 sec)
mysql> create user test01@'192.168.196.%' identified by '192168196%';Query OK, 0 rows affected (0.17 sec)
mysql> create user test01@'vhost02' identified by 'vhost02'; Query OK, 0 rows affected (0.00 sec)
mysql> create user test01@'vhost03' identified by 'vhost03';Query OK, 0 rows affected (0.12 sec)
test01@localhost、test01@127.0.0.1、test01@192.168.196.128、test01@192.168.196.%、test01@vhost02都存在时
NO.1 不指定-h

NO.2 指定-h localhost

测试127.0.0.1时需要打开skip-name-resolve
NO.3 指定-h 127.0.0.1

NO.4 指定-h 192.168.196.128

NO.5 指定-h vhost02


test01@localhost不存在、test01@127.0.0.1、test01@192.168.196.128、test01@192.168.196.%、test01@vhost02都存在时

test01@192.168.196.128\test01@192.168.196.%
mysql> drop user test01@'192.168.196.128';Query OK, 0 rows affected (0.26 sec)

配置/etc/hosts,再使用-h vhost02登录
vhost02上测试

vhost03上测试

user表中存在多条相同user不同host用户信息时MySQL该匹配哪条记录登录?的更多相关文章
- 在SharePoint中无代码开发InfoPath应用: 获取当前用户信息
很多种不同的场景下,会需要得到当前的用户信息,例如需要根据当前用户判断组,进而控制权限. 首先InfoPath提供了一个userName方法,来实现这个目的,不过这个方法的问题是只能获得不包含域名的用 ...
- webpages框架中使用Html.TextArea()在前台显示多行信息时,如何进行大小、样式的设置
环境:vs2015 webpages框架+razor语法: 目的:服务器进行数据更新操作后,在前台显示更新的相关信息: 后台代码:将更新条数等相关信息存储在一个变量中: @{ var serverIn ...
- 1、JavaScript中的Cookie 用于存储 web 页面的用户信息。
总结:每个浏览器都有一定数量限制的cookie.每个浏览器中,每一个cookie都有一个path路径,指向请求访问的网页. -------------------------------------- ...
- 4、Servlet中的Cookie 用于存储 web 页面的用户信息。
Servlet Cookie 处理 Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息.Java Servlet 显然支持 HTTP Cookie. 识别返回用户包括三个步骤: 服务 ...
- 3、JSP中的Cookie 用于存储 web 页面的用户信息。
cookie 在平时生活中的运用 存储用户在网页上的登陆信息,包括账号和密码. 有的网站,登陆的时候,会出现一个选项,问你是否要一周内或者一个月内保持登陆状态.如果你选了,那么一周之内,都不需要再输入 ...
- sql 删除表中的重复记录
嗯,遇见了表中存在重复的记录的问题,直接写sql删除时最快的,才不要慢慢的复制到excel表中慢慢的人工找呢.哼. 如下sql,找出重复的记录,和重复记录中ID值最小的记录(表中ID为自增长) sel ...
- 清除mysql表中数据
delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内 ...
- MySQL查询数据表中数据记录(包括多表查询)
MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...
- mysql 删除表中记录
一.清除mysql表中数据 delete from 表名;truncate table 表名;不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以 ...
随机推荐
- linux命令学习之:du
du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 语法 du [选项][文件] 选项 -a或-all 显示目录中个 ...
- JQuery UI之Autocomplete(1)入门程序
1.Autocomplete的主要属性:source:即为指定智能提示下拉框中的数据来源,支持三种类型. Array,主要用于本地化数据提供,支持两种格式:字符串数组 [ "Choice1 ...
- 41-ssm中对象查找正确但是没有将数据库中某个属性值赋给对象的一个成员变量
原因: 变量名虽然与 数据库字段一致,但是 包含下划线,如: a_b,数据库确实也是a_b: 但是ssm开启驼峰命名了,就要将变量名改为 aB , 驼峰命名就可以了.
- Failed to read artifact descriptor for xxx:jar的问题解决
在开发的过程中,尤其是新手,我们经常遇到Maven下载依赖jar包的问题,也就是遇到“Failed to read artifact descriptor for xxx:jar”的错误. 对于这种非 ...
- MVC中Ajax post 和Ajax Get——提交对象
HTTP 请求:GET vs. POST两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST.GET - 从指定的资源请求数据POST - 向指定的资源提交要处理的数据GET 基本上 ...
- 使用PHP来简单的创建一个RPC服务
RPC全称为Remote Procedure Call,翻译过来为"远程过程调用".主要应用于不同的系统之间的远程通信和相互调用. 比如有两个系统,一个是PHP写的,一个是JAVA ...
- html5的地理位置定位
html5提供的地理位置定位使开发人员不用借助其他软件就能轻松实现位置查找,地图应用,导航等功能. 地理位置定位基本原理GPS, WIFI, IP, 手机信号基站 核心对象Geolocation是wi ...
- 解决video标签在微信中强制全屏、微信全屏播放(Android和IOS)
在video标签中加上代码: x5-playsinline="true" webkit-playsinline="true" playsinline=" ...
- vmware磁盘空间扩展
往vmware虚拟机中导入数据库或者文件以后经常出现磁盘空间不够用.这个时候就需要扩展一下磁盘的大小. 笔者本来60G,现在想扩展到100G 命令如下 D:\Program Files (x86)\V ...
- js函数定义和调用
由于JavaScript的函数也是一个对象,上述定义的abs()函数实际上是一个函数对象,而函数名abs可以视为指向该函数的变量. var abs = function (x) { if (x > ...