Skip to content

Latest commit

 

History

History
36 lines (25 loc) · 1.85 KB

MySQL-Server.md

File metadata and controls

36 lines (25 loc) · 1.85 KB

MySQL Server API

Server

  • createServer() - creates server instance
  • Server.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
  • 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.query callback.
  • 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