• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql 协议的初始化DB命令包及解析

mysql 协议的初始化DB命令包及解析

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mysql ,初始化DB,命令包等相关知识,希望本文的分享对您有所帮助


git


https://github.com/sea-boat/mysql-protocol

概况

mysql连接如果想要改变该连接默认的schema,则客户端可以向服务端发送初始化DB命令包。

mysql通信报文结构

类型名字描述
int<3>payload长度按照the least significant byte first存储,3个字节的payload和1个字节的序列号组合成报文头
int<1>序列号
stringpayload报文体,长度即为前面指定的payload长度

初始化DB命令包

Payload

1              [02] COM_INIT_DBstring[EOF]    schema name

更多详情 : http://dev.mysql.com/doc/internals/en/com-init-db.html

初始化命令包操作

  1. 初始化命令包

/**
 * 
 * @author seaboat
 * @date 2016-09-25
 * @version 1.0
 * <pre><b>email: </b>849586227@qq.com</pre>
 * <pre><b>blog: </b>http:///;/pre>
 * <p>mysql init db packet.</p>
 */public class InitDBPacket extends MySQLPacket {
    public byte[] schema;    public void read(byte[] data) {
        MySQLMessage mm = new MySQLMessage(data);
        packetLength = mm.readUB3();
        packetId = mm.read();
        mm.read(); // skip COM_INIT_DB
        this.schema = mm.readBytes();
    }    public void write(ByteBuffer buffer) {
        BufferUtil.writeUB3(buffer, calcPacketSize());
        buffer.put(packetId);
        buffer.put(COM_INIT_DB);
        buffer.put(schema);
    }    @Override
    public int calcPacketSize() {        int i = 1;
        i += schema.length;        return i;
    }    @Override
    protected String getPacketInfo() {        return "MySQL Init DB Packet";
    }

}

以上就是mysql 协议的初始化DB命令包及解析的内容,更多相关内容请关注微课江湖()!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL essential版本和普通版本有什么区别?
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 解析远程连接管理其他机器上的MYSQL数据库
  • MySQL timestamp自动更新时间分享
  • MySQL Order by 语句用法与优化详解
  • 深入解析mysql中order by与group by的顺序问题
  • 解析mysql不重复字段值求和
  • MySql实现跨表查询的方法详解

相关文章

  • 2018-12-05从内部开始来认识Oracle数据库的结构组件
  • 2018-12-05教你怎么在linux上登录mysql和退出mysql
  • 2017-05-11解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)
  • 2018-12-05MySQL不支持InnoDB的解决方法
  • 2017-05-11mysql自定义排序顺序语句
  • 2017-05-11MySQL主从复制的原理及配置方法(比较详细)
  • 2018-12-05MYSQL数据表损坏的原因分析和修复方法小结(推荐)
  • 2017-05-11MySQL 数据库优化的具体方法说明
  • 2018-12-05oracle 11g RAC 常用命令整理分享
  • 2018-12-05MYSQL 数据库命名与设计规范

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 详解MySQL复制表的功能及实例代码
    • SQL Server 数据库索引其索引的小技巧
    • MySQL数据库数据存放位置修改
    • Datafactory数据生成怎么连接mysql数据库
    • Xshell远程管理MySQL服务器如何实现选择自动复制以及右键自动粘贴的设置!
    • SQL server 管理事务和数据库介绍
    • Oracle with子句
    • Windows平台下MySQL常用操作与命令
    • MySQL高级二——流程控制语句
    • MySQL--编写脚本_MySQL

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有