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
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.
- 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