MySQL Server API
Server
createServer()- creates server instanceServer.listen- listen port / unix socket (same arguments as net.Server.listen)
Events
- connect
- new incoming connection.
Connection
serverHandshake({ serverVersion, protocolVersion, connectionId, statusFlags, characterSet, capabilityFlags })- send server handshake initialisation packet, wait handshake response and start listening for commands
capabilityFlagscontrols which protocol features are advertised. Client flags are masked against these capabilities when parsing the handshake response, so the server only honors mutually-supported features.
writeOk({ affectedRows: num, insertId: num })- send OK packet to client
writeEof(warnings, statusFlags)- send EOF packet
writeTextResult(rows, fields)- write query result to client. Rows and fields are in the same format as in
connection.querycallback.
- write query result to client. Rows and fields are in the same format as in
writeColumns(fields)- write fields + EOF packets.
writeTextRow(row)- write array (not hash!) of values as result row
- TODO: binary protocol
Events
Every command packet received by the server will be emitted as a packet event with the parameters:
- packet: Packet
- The packet itself
- knownCommand: boolean
- is this command known to the server
- *commandCode: number
- the parsed command code (first byte)
In addition special events are emitted for commands received from the client. If no listener is present a fallback behavior will be invoked.
quit()- Default: close the connection
init_db(schemaName: string)- Default: return OK
query(sql: string)- Please attach a listener to this. Default: return HA_ERR_INTERNAL_ERROR
field_list(table: string, fields: string)- Default: return ER_WARN_DEPRECATED_SYNTAX
ping()- Default: return OK