问题:
 当用户名相同,但主机名不同的多条记录。用户由不同主机登录时,选择使用那条记录来验证,数据库版本为: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该匹配哪条记录登录?的更多相关文章

  1. 在SharePoint中无代码开发InfoPath应用: 获取当前用户信息

    很多种不同的场景下,会需要得到当前的用户信息,例如需要根据当前用户判断组,进而控制权限. 首先InfoPath提供了一个userName方法,来实现这个目的,不过这个方法的问题是只能获得不包含域名的用 ...

  2. webpages框架中使用Html.TextArea()在前台显示多行信息时,如何进行大小、样式的设置

    环境:vs2015 webpages框架+razor语法: 目的:服务器进行数据更新操作后,在前台显示更新的相关信息: 后台代码:将更新条数等相关信息存储在一个变量中: @{ var serverIn ...

  3. 1、JavaScript中的Cookie 用于存储 web 页面的用户信息。

    总结:每个浏览器都有一定数量限制的cookie.每个浏览器中,每一个cookie都有一个path路径,指向请求访问的网页. -------------------------------------- ...

  4. 4、Servlet中的Cookie 用于存储 web 页面的用户信息。

    Servlet Cookie 处理 Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息.Java Servlet 显然支持 HTTP Cookie. 识别返回用户包括三个步骤: 服务 ...

  5. 3、JSP中的Cookie 用于存储 web 页面的用户信息。

    cookie 在平时生活中的运用 存储用户在网页上的登陆信息,包括账号和密码. 有的网站,登陆的时候,会出现一个选项,问你是否要一周内或者一个月内保持登陆状态.如果你选了,那么一周之内,都不需要再输入 ...

  6. sql 删除表中的重复记录

    嗯,遇见了表中存在重复的记录的问题,直接写sql删除时最快的,才不要慢慢的复制到excel表中慢慢的人工找呢.哼. 如下sql,找出重复的记录,和重复记录中ID值最小的记录(表中ID为自增长) sel ...

  7. 清除mysql表中数据

    delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内 ...

  8. MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

  9. mysql 删除表中记录

    一.清除mysql表中数据 delete from 表名;truncate table 表名;不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以 ...

随机推荐

  1. activity背景毛玻璃效果

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  2. js阻止a标签默认事件的几种方法

    方法/步骤    疑问 打开编辑器,新建html并加入a标签,如图所示,小编想点击a标签时执行pop函数同时禁止a标签的默认的href跳转,该如何阻止呢?  方法一 要阻止a标签跳转,可以改变href ...

  3. Executors提供的四种线程池

    Java 5+中的Executor接口定义一个执行线程的工具.它的子类型即线程池接口是ExecutorService.要配置一个线程池是比较复杂的,尤其是对于线程池的原理不是很清楚的情况下,因此在工具 ...

  4. Android.API.Context.getFilesDir()

    1. Context.getFilesDir() http://developer.android.com/reference/android/content/Context.html#getFile ...

  5. git回退文件修改

    假设git仓库某个文件的提交信息如下: [cxy@localhost-live mate-power-manager]$ git log -n3 SPECS/mate-power-manager.sp ...

  6. 数据存储(直接写入、NSUserDefaults、NSkeyedArchiver)

    ios中常用文件存取的方法有: 1.直接写文件的方式,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据全部存放在一个属性列表文件(*.p ...

  7. vs2015 npm list 更新问题

    在更新npm list时候,经常会非常的慢,今天试了一个诡异的方法,就是在文件夹下面直接把所有缓存全部删除,全部重新下,结果感觉反而速度快很多. 原来的更新包80M竟然1个小时没有下载完. C:\Us ...

  8. BZOJ 1391 [CEOI] Order - 网络流 最大流

    Solution 非常简单的建边!!! 但是刚开始的代码不够体现社会主义的优越性, 于是我 .... 惨痛教训啊... 终于到了今天才能够体现社会主义优越性... Code #include<c ...

  9. Hotspot参数分析

    -XX:+HeapDumpOnOutOfMemoryError 让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以便事后进行分析 -Xmx与-Xms 虚拟机堆参数 -Xoss 设置本地方法栈 ...

  10. shell脚本返回字符串

    shell脚本的return只能返回数值类型,可是我们很多时候想返回字符串 #!/bin/sh function getStr () { String="very good" ec ...