【原创】MySQL Proxy - read_handshake()

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:


       握手信息是在初始连接建立后(通过 connect_server())由服务器发送到客户端的。握手信息中包含关于 MySQL 版本、用于处理连接信息的线程 ID 、客户端和服务器 IP 地址等细节信息。这些信息通过 proxy.connection 结构提供。  


proxy.connection.server.mysqld_version: MySQL 服务器版本  
proxy.connection.server.thread_id: 线程 ID  
proxy.connection.server.scramble_buffer: 存放 scramble password 的 buffer  
proxy.connection.server.dst.name: 服务器的 IP 地址  
proxy.connection.client.src.name: 客户端的 IP 地址  


       例如,你可以打印出握手数据信息,并通过 IP 地址拒绝一些客户端的连接,具体如下:  


function read_handshake( auth )
        print("<-- let's send him some information about us")
        print("    mysqld-version: " .. proxy.connection.server.mysqld_version)
        print("    thread-id     : " .. proxy.connection.server.thread_id)
        print("    scramble-buf  : " .. string.format("%q", proxy.connection.server.scramble_buffer))
        print("    server-addr   : " .. proxy.connection.server.dst.name)
        print("    client-addr   : " .. proxy.connection.client.dst.name)
        


        if not proxy.connection.client.dst.name:match("^127.0.0.1:") then
                proxy.response.type = proxy.MYSQLD_PACKET_ERR
                proxy.response.errmsg = "only local connects are allowed"


                print("we don't like this client");


                return proxy.PROXY_SEND_RESULT
        end
end


       注意到,你必须通过 proxy.PROXY_SEND_RESULT 才能返回错误包信息给客户端。
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
存储 数据采集 缓存
【运维知识进阶篇】Zabbix5.0稳定版详解9(Zabbix优化:高并发对MySQL进行拆分、Zabbix-agent主动上报模式、使用proxy代理模式、系统自带监控项优化、进程优化、缓存优化)
【运维知识进阶篇】Zabbix5.0稳定版详解9(Zabbix优化:高并发对MySQL进行拆分、Zabbix-agent主动上报模式、使用proxy代理模式、系统自带监控项优化、进程优化、缓存优化)
1519 0
|
监控 MySQL 关系型数据库
|
关系型数据库 MySQL 测试技术
|
关系型数据库 MySQL 测试技术

推荐镜像

更多