MySQL

Requirements for using MySQL with Synece

Manage access

  • Create a dedicated user and give it the super user role as Synece requires a superuser to access binary logs for replication

Enable bin log

You must enable binary logging for MySQL replication. The binary logs record transaction updates for replication tools to propagate changes.

  1. Check whether the log-bin option is already on:

    // for MySql 5.x mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM information_schema.global_variables WHERE variable_name='log_bin'; // for MySql 8.x mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM performance_schema.global_variables WHERE variable_name='log_bin';

  2. If it is OFF, configure your MySQL server configuration file with the following properties, which are described in the table below:

    server-id = 223344; log_bin = mysql-bin binlog_format = ROW binlog_row_image = FULL binlog_expire_logs_seconds = 864000

  3. Confirm your changes by checking the binlog status once more:

    // for MySql 5.x mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM information_schema.global_variables WHERE variable_name='log_bin'; // for MySql 8.x mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM performance_schema.global_variables WHERE variable_name='log_bin';

  4. If you run MySQL on Amazon RDS, you must enable automated backups for your database instance for binary logging to occur. If the database instance is not configured to perform automated backups, the binlog is disabled, even if you apply the settings described in the previous steps.

Enable GTIDs if you are using replica servers

Global transaction identifiers (GTIDs) uniquely identify transactions that occur on a server within a cluster. Though not required for a Debezium MySQL connector, using GTIDs simplifies replication and enables you to more easily confirm if primary and replica servers are consistent.

  1. Enable gtid_mode:

    mysql> gtid_mode=ON

  2. Enable enforce_gtid_consistency:

    mysql> enforce_gtid_consistency=ON

  3. Confirm the changes:

    mysql> show global variables like '%GTID%';

Last updated