MySQL auth_socket 验证插件的工作原理
Posted yizdu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL auth_socket 验证插件的工作原理相关的知识,希望对你有一定的参考价值。
auth_socket
的验证方式是:客户端通过启用SO_PEERCRED
选项的socket连接到mysql服务端,服务端从该socket检测运行该客户端的系统用户名是否为要登录的mysql用户名。若用户名相同,则登录,若不同,则拒绝。若用户名使用未启用SO_PEERCRED
选项的socket连接,也会拒绝。
SO_PEERCRED
是一个Unix域socket才能启用的选项,而Unix域socket只在本机通信时才会使用。所以,配置了auth_socket
的mysql用户无法通过mysql客户端远程登录,因为远程登录会启用TCP/IP socket。当然,既然叫Unix域,能使用这种socket的当然只有Linux和其他类Unix操作系统。启用该选项的socket,会向目标发送连接者的凭据信息(包括用户名)。mysql服务端获取该凭据并比对用户名是否相等以此决定是否允许登录。
参考
- [1] Linux manual page unix(7)
以上是关于MySQL auth_socket 验证插件的工作原理的主要内容,如果未能解决你的问题,请参考以下文章
MySQL失败:mysql“错误1524(HY000):插件'auth_socket'未加载”
MySQL失败:mysql“错误1524(HY000):插件'auth_socket'未加载”
ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded
Linux 下安装 MySQL 后给 root 用户设置密码