anchor.diff:  * xref:descriptions-of-debezium-mysql-connector-configuration-properties[]
   endif::product[]
   
  -// Type: concept
  +// Type: procedure
  +// Title: Installing {prodname} MySQL connectors
   [id="installing-debezium-mysql-connectors"]
  -=== Installing {prodname} MySQL connectors
  +=== Installing
   
   To install a {prodname} MySQL connector, download the connector archive, extract it to your Kafka Connect environment, and ensure that the plug-ins parent directory is specified in your Kafka Connect environment.
   
  
positive.code: endif::[]
  endif::community[]
  . Extract the files into your Kafka Connect environment.
  . Add the plug-in's parent directory to your Kafka Connect `plugin.path`:
  +
  [source]
  ----
  
negative.code: [[mysql-change-event-keys]]
  === Change event keys
  
  A change event's key contains the schema for the changed table's key and the changed row's actual key. Both the schema and its corresponding payload contain a field for each column in the changed table's `PRIMARY KEY` (or unique constraint) at the time the connector created the event.
  
  Consider the following `customers` table, which is followed by an example of a change event key for this table. 
  
  .Example table
  [source,sql]
  ----
  CREATE TABLE customers (
    id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(255) NOT NULL,
    last_name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL UNIQUE KEY
  ) AUTO_INCREMENT=1001;
  ----
  
  .Example change event key
  Every change event that captures a change to the `customers` table has the same event key schema. For as long as the `customers` table has the previous definition, every change event that captures a change to the `customers` table has the following key structure. In JSON, it looks like this:
  
  [source,json,index=0]
  ----
  {
   "schema": { <1>
      "type": "struct",
      "name": "mysql-server-1.inventory.customers.Key", <2>
      "optional": false, <3>
      "fields": [ <4>
        {
          "field": "id",
          "type": "int32",
          "optional": false
        }
      ]
    },
   "payload": { <5>
      "id": 1001
    }
  }
  ----
  
  .Description of change event key
  [cols="1,2,7",options="header"]
  |===
  |Item |Field name |Description
  
  |1
  |`schema`
  |The schema portion of the key specifies a Kafka Connect schema that describes what is in the key's `payload` portion. 
  
  |2
  |`mysql-server-1.inventory.customers.Key`
  a|Name of the schema that defines the structure of the key's payload. This schema describes the structure of the primary key for the table that was changed. Key schema names have the format _connector-name_._database-name_._table-name_.`Key`. In this example: + 
  
  * `mysql-server-1` is the name of the connector that generated this event. + 
  * `inventory` is the database that contains the table that was changed. +
  * `customers` is the table that was updated.
  
  |3
  |`optional`
  |Indicates whether the event key must contain a value in its `payload` field. In this example, a value in the key's payload is required. A value in the key's payload field is optional when a table does not have a primary key.
  
  |4
  |`fields` 
  |Specifies each field that is expected in the `payload`, including each field's name, type, and whether it is required.
  
  |5
  |`payload`
  |Contains the key for the row for which this change event was generated. In this example, the key, contains a single `id` field whose value is `1001`.
  
  |===
  
  // Type: concept
  // ModuleID: about-values-in-debezium-mysql-change-events
  