Azure MySQL

Azure Database for MySQL is an easy to set up, operate and scale fully managed database service from Microsoft. It can automate your database management and maintenance, including routine updates, backups and security, enabling you to focusing on working with your data.

You can ingest data from your Azure MySQL database using Hevo Pipelines and replicate it to a Destination of your choice.

Prerequisites

Setting up MySQL Binary Logs for Replication

Hevo supports data ingestion from the MySQL database instance via binary logs (BinLog). A binary log is a collection of log files that records information about data modifications and data object modifications made on a MySQL database instance. Typically, binary logs are used for data replication and data recovery.

By default, Row-based BinLog Replication in Azure MySQL. To change this to capture the entire data:

  1. Access your Microsoft Azure MySQL instance.

    Microsoft Azure login

  2. Under Settings, click Server Parameters.

  3. Update the values of the parameters as follows:

    Parameter Name Value
    binlog_row_image FULL
    binlog_expire_logs_seconds A value greater than or equal to 259200 (three days).

    Log parameters

  4. Click Save.

  5. Confirm under Notifications that your changes have been applied and the instance has restarted successfully before running the Pipeline, to avoid errors.

    Notifications

Whitelisting Hevo’s IP Addresses

You need to whitelist the Hevo IP addresses for your region to enable Hevo to connect to your Microsot Azure MySQL database. You can do this by creating firewall rules in your Microsoft Azure database settings as follows:

  1. Access your Microsoft Azure MySQL instance.

  2. Under Resources, select the database you want to synchronize with Hevo.

    mySQL db

  3. Under Settings, click Connection security.

  4. Create a Firewall Rule:

    1. Specify a Firewall Rule Name.
    2. Specify Hevo’s IP addresses in the Start IP and End IP fields as per your region.

      Note: As Hevo has specific IP addresses and not a range, the value in Start IP and End IP fields is the same.

      firewall rules

    3. Click Save to save the rule.
    4. Repeat this step to add the IP address for each applicable Hevo region.

Granting Privileges to a User

The database user specified in the Hevo Pipeline must have the SELECT and REPLICATION global privileges:

To set these up, open your Azure MySQL database in your SQL client tool like SQL Workbench or the MySQL command line.

  • For an ADMIN user, run the command:

    GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO <admin_login_name>;

  • For an existing non-ADMIN user, run the command:

    GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO <username>;

  • For creating a non-ADMIN user, run the commands:

    CREATE USER <db_username> IDENTIFIED BY <password>;

    GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'hevo'@'%';

Limitations

  • Logging in using SSL not supported. This setting is enabled by default. You can disable it as follows:

    Disable SSL

    1. Under Settings, click Connection security.
    2. In SSL Settings on the right, set the toggle option for Enforce SSL connection to DISABLED.
    3. Click Save.
  • Hevo does not fetch Views from the MySQL database automatically. As a workaround, you can create individual Pipelines in Custom SQL mode to fetch each View. However, some limitations may arise based on the type of data synchronisation, the query mode, or the number of Events. Contact Hevo Support for more details.

Last updated on 28 Dec 2020