Home > Database > Mysql Tutorial > Initialization DB command package and analysis of mysql protocol

Initialization DB command package and analysis of mysql protocol

黄舟
Release: 2017-03-07 13:58:52
Original
1372 people have browsed it


git


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

Overview

mysql connection If you want to change the default schema of the connection, the client can send an initialization DB command package to the server.

mysql communication message structure

##string payloadMessage body, the length is the previously specified payload length
Type Name Description
int<3> payload length Stored according to the least significant byte first, 3-byte payload and 1-byte sequence number combination Into the message header
int<1> sequence number
Initialize DB command package

Payload

1              [02] COM_INIT_DBstring[EOF]    schema name
Copy after login

More details: http://dev.mysql.com/doc/internals/en/com-init-db.html

Initialization command package operation

  1. Initialization command package

  2. /**
     * 
     * @author seaboat
     * @date 2016-09-25
     * @version 1.0
     * <pre class="brush:php;toolbar:false"><b>email: </b>849586227@qq.com
    *
    <b>blog: </b>//m.sbmmt.com/;/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";
        }
    
    }
    Copy after login
    The above is the content of the initialization DB command package and analysis of the mysql protocol, more For related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!



source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template