> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thanx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Generic MySQL

> Configuring your generic MySQL destination.

## Prerequisites

* [ ] If your MySQL database is protected by security groups or other firewall settings, you will need to have the data-syncing service's static IP available to complete **Step 1**.

## Step 1: Allow access

Create a rule in a security group or firewall settings to whitelist:

* incoming connections to your host and port (usually `3306`) from the static IP.
* outgoing connections from ports `1024` to `65535` to the static IP.

## Step 2: Create writer user

Create a database user to perform the writing of the source data.

1. Open a connection to your MySQL database.
2. Create a user for the data transfer by executing the following SQL command.

```sql theme={null}
CREATE USER <username>@'%' IDENTIFIED BY '<some-password>';
```

3. Grant user required privileges on the database.

```sql theme={null}
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW ON *.* TO <username>@'%';
```

<Warning>
  **If the `schema`/`database` already exists**

  By default, the service creates a new schema (*in MySQL, `schema` is synonomous with `database`*). If you prefer to create the schema yourself before connecting the destination, you must ensure that the writer user has the proper permissions on the schema, using `GRANT ALL PRIVILEGES ON <database_name>.* TO <username>@'%';`
</Warning>

## Step 3: Add your destination

Securely share your **host name**, **database name**, **port**, your chosen **schema name**, **username**, and **password** with us to complete the connection.
