# MariaDB

This article outlines the integration with MariaDB connector, enabling streamlined metadata management through features such as crawling, profiling, querying, data preview, and lineage building (both automatic and manual). It also ensures secure authentication via Credential Manager.

<figure><img src="https://content.gitbook.com/content/ztcvwwOJCeaE1n6oHp4C/blobs/XCZDHl41UXPrnZMIZs7J/unknown.png" alt=""><figcaption></figcaption></figure>

## Overview

### Connector Details

| Connector Category                                                          | RDBMS                     |
| --------------------------------------------------------------------------- | ------------------------- |
| Connector Version                                                           | Release7.2.5.x            |
| Releases Supported (Available from)                                         | Release6.3.x              |
| <p>Connectivity</p><p>\[How the connection is established with MariaDB]</p> | JDBC driver               |
| JDBC Driver                                                                 | MariaDB JDBC Client 2.7.5 |
| Verified MariaDB Version                                                    | MariaDB 10.4.34           |

{% hint style="info" %}
The MariaDB connector has been validated with the mentioned "Verified MariaDB Versions" and is expected to be compatible with other supported MariaDB versions. If there are any issues with validation or metadata crawling, please submit a support ticket for investigation and feedback.
{% endhint %}

### Connector Features

| Feature                                      | Availability |
| -------------------------------------------- | :----------: |
| Crawling                                     |       ✅      |
| Delta Crawling                               |       ❌      |
| Profiling                                    |       ✅      |
| Query Sheet                                  |       ✅      |
| Data Preview                                 |       ✅      |
| Auto Lineage                                 |       ✅      |
| Manual Lineage                               |       ✅      |
| Secure Authentication via Credential Manager |       ✅      |
| Data Quality                                 |       ✅      |
| DAM (Data Access Management)                 |       ❌      |
| Bridge                                       |       ✅      |

### Metadata Mapping

The following objects are crawled from MariaDB and mapped to the corresponding UI assets.

<table><thead><tr><th>MariaDB Object</th><th width="198.33331298828125">MariaDB Attribute</th><th>OvalEdge Attribute</th><th>OvalEdge Category</th><th>OvalEdge Type</th></tr></thead><tbody><tr><td>Table</td><td>TABLE_NAME</td><td>Table</td><td>Tables</td><td>table</td></tr><tr><td>Table</td><td>table_type</td><td>Type</td><td>Tables</td><td>table</td></tr><tr><td>Table</td><td>table_comment</td><td>Source Description</td><td>Descriptions</td><td>Source Description</td></tr><tr><td>Columns</td><td>COLUMN_NAME</td><td>Column</td><td>Table Columns</td><td>-</td></tr><tr><td>Columns</td><td>data_type</td><td>Column Type</td><td>Table Columns</td><td>-</td></tr><tr><td>Columns</td><td>COLUMN_COMMENT</td><td>Source Description</td><td>Table Columns</td><td>-</td></tr><tr><td>Columns</td><td>ordinal_position</td><td>Column Position</td><td>Table Columns</td><td>-</td></tr><tr><td>Columns</td><td>character_maximum_length/numeric_precision</td><td>Data Type Size</td><td>Table Columns</td><td>-</td></tr><tr><td>Views</td><td>TABLE_NAME</td><td>View</td><td>Tables</td><td>view</td></tr><tr><td>Views</td><td>VIEW_DEFINITION</td><td>View Query</td><td>Views</td><td>View</td></tr><tr><td>Procedures</td><td>ROUTINE_NAME</td><td>Name</td><td>Procedures</td><td>-</td></tr><tr><td>Procedures</td><td>DESCRIPTION</td><td>Source Description</td><td>Descriptions</td><td>-</td></tr><tr><td>Procedures</td><td>ROUTINE_DEFINITION</td><td>Procedure</td><td>Procedures</td><td>-</td></tr><tr><td>Functions</td><td>ROUTINE_NAME</td><td>Name</td><td>Functions</td><td>-</td></tr><tr><td>Functions</td><td>ROUTINE_DEFINITION</td><td>Function</td><td>Functions</td><td>-</td></tr><tr><td>Functions</td><td>DESCRIPTION</td><td>Source Description</td><td>Descriptions</td><td>-</td></tr><tr><td>Triggers</td><td>trigger_name</td><td>Name</td><td>Triggers</td><td>-</td></tr><tr><td>Triggers</td><td>action_statement</td><td>Trigger Data</td><td>Triggers</td><td>-</td></tr><tr><td>Triggers</td><td>action_timing</td><td>Type</td><td>Triggers</td><td>-</td></tr></tbody></table>

## Set up a Connection

### Prerequisites

The following are the prerequisites to establish a connection:

**Whitelisting Ports**

Ensure the inbound port “3306” is whitelisted for OvalEdge to connect to the MariaDB database.

{% hint style="warning" %}
The default port number for MariaDB is 3306. If a different port is used, ensure that the updated port number is specified during connection setup, the port is whitelisted, and communication between the system and MariaDB is properly established.
{% endhint %}

**Service Account User Permissions**

{% hint style="warning" %}
It is recommended to use a separate service account to establish the connection to the data source, configured with the following minimum set of permissions.
{% endhint %}

{% hint style="info" %}
👨‍💻 Who can provide these permissions? These permissions are typically granted by the MariaDB administrator, as users may not have the required access to assign them independently.
{% endhint %}

<table><thead><tr><th width="151.66668701171875">Objects</th><th width="259.99993896484375">System Tables</th><th>Access Permission</th></tr></thead><tbody><tr><td>Schema</td><td>Information_Schema.Schemata</td><td>Select, Usage</td></tr><tr><td>Tables</td><td>Information_Schema.Tables</td><td>Select on Tables &#x26; Usage on the Table/View for Information_Schema.Schemata or Information_Schema.Tables</td></tr><tr><td>Table Columns</td><td>Information_Schema.Columns</td><td>Select, Usage</td></tr><tr><td>Table Columns</td><td>Information_Schema.Views</td><td>Select, Usage</td></tr><tr><td>Table Columns</td><td>Information_Schema.Tables</td><td>Select, Usage</td></tr><tr><td>Table Columns</td><td>Information_Schema.Key_Column_Usage</td><td>Select, Usage</td></tr><tr><td>Table Columns</td><td>Information_Schema.Table_Constraints</td><td>Select, Usage</td></tr><tr><td>Views</td><td>Information_Schema.Views</td><td>Select on Information_Schema.Views, and Show View on the Actual View</td></tr><tr><td>Functions, Stored Procedures Source Code</td><td>Information_Schema.Routines</td><td>Select on Information_Schema.Routines, and Either Show Routine or Execute Privilege on the Actual Routine</td></tr><tr><td>Triggers</td><td>Information_Schema.Triggers</td><td>Select on Information_Schema.Triggers, and Trigger Privilege on the Actual Table Associated With the Trigger</td></tr><tr><td>Relationships</td><td>Information_Schema.Referential_Constraints</td><td>Select, Usage</td></tr></tbody></table>

### Connection Configuration Steps

{% hint style="warning" %}
Users are required to have the Connector Creator role in order to configure a new connection.<br>
{% endhint %}

1. Log into OvalEdge, go to Administration > Connectors, click + (New Connector), search for MariaDB, and complete the required parameters.

{% hint style="info" %}
Fields marked with an asterisk (\*) are mandatory for establishing a connection.
{% endhint %}

<table><thead><tr><th width="219.3333740234375">Field Name</th><th>Description</th></tr></thead><tbody><tr><td>Connector Type</td><td>By default, "MariaDB" is displayed as the selected connector type.</td></tr><tr><td>SSL Enabled*</td><td>Select True to enable SSL encryption for secure communication between OvalEdge and the MariaDB database. Select False if SSL is not configured on the MariaDB server.</td></tr><tr><td>Credential Manager*</td><td><p>Select the desired credentials manager from the drop-down list. Relevant parameters will be displayed based on the selection.</p><p>Supported Credential Managers:</p><ul><li>OE Credential Manager</li><li>AWS Secrets Manager</li><li>HashiCorp Vault</li><li>Azure Key Vault</li></ul></td></tr><tr><td>License Add Ons</td><td><p><br></p><ul><li>Select the checkbox for Auto Lineage Add-On to build data lineage automatically.</li><li>Select the checkbox for Data Quality Add-On to identify data quality issues using data quality rules and anomaly detection.</li></ul></td></tr><tr><td>Connector Name*</td><td><p>Enter a unique name for the MariaDB connection              </p><p>(Example: "MariaDB_Prod").</p></td></tr><tr><td>Connector Environment</td><td>Select the environment (Example: PROD, STG) configured for the connector.</td></tr><tr><td>Connector description</td><td>Enter a brief description of the connector.</td></tr><tr><td>Server*</td><td>Enter the MariaDB database server name or IP address (Example: xxxx-xxx.xxxx4ijtzasl.xx-south-1.rds.xxx.com or 1xx.xxx.1.x0).</td></tr><tr><td>Port*</td><td>By default, the port number for the MariaDB, "3306" is auto-populated. If required, the port number can be modified as per custom port number that is configured for the MariaDB.</td></tr><tr><td>Database*</td><td>Enter the database name to which the service account user has access within MariaDB.</td></tr><tr><td>Driver*</td><td>By default, the MariaDB JDBC driver details are auto-populated. Ensure the driver version is compatible with the MariaDB database version configured for the connection. </td></tr><tr><td>Username*</td><td>Enter the service account username set up to access the MariaDB database (Example: "oesauser").</td></tr><tr><td>Password*</td><td>Enter the password associated with the service account user.</td></tr><tr><td>Connection String</td><td><p>Configure the connection string for the MariaDB database:</p><ul><li>Automatic Mode: The system generates a connection string based on the provided credentials.</li><li>Manual Mode: Enter a valid connection string manually.</li></ul><p>Replace placeholders with actual database details.</p><p>{sid} refers to Database Name.</p></td></tr><tr><td>Plugin Server</td><td>Enter the server’s name when running as a plugin server.</td></tr><tr><td>Plugin Port</td><td>Enter the port number on which the plugin is running.</td></tr></tbody></table>

Default Governance Roles

<table data-header-hidden><thead><tr><th width="218.66668701171875"></th><th></th></tr></thead><tbody><tr><td>Default Governance Roles*</td><td>Select the appropriate users or teams for each governance role from the drop-down list. All users and teams configured in OvalEdge Security are displayed for selection.</td></tr></tbody></table>

**Admin Roles**

<table data-header-hidden><thead><tr><th width="219.3333740234375"></th><th></th></tr></thead><tbody><tr><td>Admin Roles*</td><td>Select one or more users from the dropdown list for Integration Admin and Security &#x26; Governance Admin. All users configured in OvalEdge Security are available for selection.</td></tr></tbody></table>

**No of Archive Objects**

<table data-header-hidden><thead><tr><th width="219.3333740234375"></th><th></th></tr></thead><tbody><tr><td>No Of Archive Objects*</td><td><p>This shows the number of recent metadata changes to a dataset at the source. By default, it is off. To enable it, toggle the Archive button and specify the number of objects to archive.</p><p>Example: Setting it to 4 retrieves the last four changes, displayed in the 'Version' column of the 'Metadata Changes' module.</p></td></tr></tbody></table>

**Bridge**

<table data-header-hidden><thead><tr><th width="220"></th><th></th></tr></thead><tbody><tr><td>Select Bridge*</td><td><p>If applicable, select the bridge from the drop-down list.</p><p>The drop-down list displays all active bridges configured in OvalEdge. These bridges enable communication between data sources and OvalEdge without altering firewall rules.</p></td></tr></tbody></table>

2. After entering all connection details, the following actions can be performed:
   1. Click Validate to verify the connection.
   2. Click Save to store the connection for future use.
   3. Click Save & Configure to apply additional settings before saving.
3. The saved connection will appear on the Connectors home page.

### Manage Connector Operations

#### Crawl/Profile

{% hint style="warning" %}
To perform crawl and profile operations, users must be assigned the Integration Admin role.
{% endhint %}

The Crawl/Profile button allows users to select one or more schemas for crawling and profiling.&#x20;

1. Navigate to the Connectors page and click Crawl/Profile.
2. Select the schemas to crawl.
3. The Crawl option is selected by default. Click the Crawl & Profile radio button if you want both operations.
4. Click Run to collect metadata from the connected source and load it into the OvalEdge Data Catalog.
5. After a successful crawl, the information appears in the Data Catalog > Databases tab.

The Schedule checkbox allows automated crawling and profiling at defined intervals, from a minute to a year.

1. Click the Schedule checkbox to enable the Select Period drop-down.
2. Select a time period for the operation from the drop-down menu.
3. Click Schedule to initiate metadata collection from the connected source.
4. The system will automatically execute the selected operation (Crawl or Crawl & Profile) at the scheduled time.

#### Other Operations

The Connectors page in OvalEdge provides a centralized view of all configured connectors, including their health status.

Managing connectors includes:

* Connectors Health: Displays the current status of each connector using a green icon for active connections and a red icon for inactive connections, helping to monitor the connectivity with data sources.
* Viewing: Click the Eye icon next to the connector name to view connector details, including databases, tables, columns, and codes.

Nine Dots Menu Options:

To view, edit, validate, build lineage, configure, or delete connectors, click on the Nine Dots menu.

* Edit Connector: Update and revalidate the data source.
* Validate Connector: Check the connection's integrity.
* Settings: Modify connector settings.
  * Crawler: Configure data extraction.
  * Profiler: Customize data profiling rules and methods.
  * Query Policies: Define query execution rules based on roles.
  * Access Instructions: Add notes on how data can be accessed.
  * Business Glossary Settings: Manage term associations at the connector level.
  * Anomaly Detection Settings: Configure anomaly detection preferences at the connector level.
  * Connection Pooling: Configure database connection pool parameters to manage active and idle connections for improved performance.
  * Others: Configure notification recipients for metadata changes.
* Build Lineage: Automatically build data lineage using source code parsing.
* Delete Connector: Remove a connector with confirmation.

## Connectivity Troubleshooting

If incorrect parameters are entered, error messages may appear. Ensure all inputs are accurate to resolve these issues. If issues persist, contact the assigned support team.

<table><thead><tr><th width="84.33331298828125">S.No.</th><th width="173.6666259765625">Error Message(s)</th><th>Error Description &#x26; Resolution</th></tr></thead><tbody><tr><td>1</td><td>Access Denied For User</td><td><p><strong>Error Description:</strong></p><p>Either the username or password is incorrect, or the user does not have access to connect to the MariaDB server.</p><p><strong>Resolution</strong>:</p><ul><li>Ensure the correct username and password are entered in the connection setup form.</li><li>Verify the user account exists and is active in MariaDB.</li><li>Confirm the user has permission to connect from the configured host/IP address.</li><li>If using Credential Manager, ensure the credentials are stored correctly.</li><li>Validate the credentials using a MariaDB client tool.</li></ul></td></tr><tr><td>2</td><td><p><br></p><p>Communications Link Failure / Connection Refused</p></td><td><p><strong>Error Description:</strong></p><p>The connector is unable to reach the MariaDB server due to network, port, or firewall restrictions.</p><p><strong>Resolution</strong>:</p><ul><li>Ensure the server name/IP address is correct.</li><li>Verify the MariaDB server is running and accessible.</li><li>Confirm the port number is correct (default 3306).</li><li>Ensure firewall rules allow inbound/outbound access to the port.</li><li>Test connectivity using ping or telnet to validate network access.</li></ul></td></tr><tr><td>3</td><td>Invalid Number Format For Port Number</td><td><p><strong>Error Description:</strong></p><p>The port value entered is not a valid numeric value.</p><p><strong>Resolution</strong>:</p><ul><li>Ensure the port field contains only numeric values.</li><li>Remove any spaces or special characters from the port field.</li><li>Verify the port number is within the valid range (1–65535).</li><li>Use the default port 3306 if no custom port is configured.</li></ul></td></tr><tr><td>4</td><td>Unknown Database</td><td><p><strong>Error Description:</strong></p><p>The database name provided in the connection configuration is incorrect or does not exist in MariaDB.</p><p><strong>Resolution</strong>:</p><ul><li>Ensure the database name is correctly entered in the Database field.</li><li>Verify the database exists in MariaDB using SHOW DATABASES.</li><li>Confirm the database name matches the correct case format.</li><li>Ensure the user has privileges to access the specified database.</li></ul></td></tr><tr><td>5</td><td>Failed To Retrieve DataSource From DataSourceProvider</td><td><p><strong>Error Description:</strong></p><p>The connection pool initialization failed due to invalid connection configuration, JDBC driver issue, or incorrect connection string.</p><p><strong>Resolution</strong>:</p><ul><li>Verify the connection string format is correct.</li><li>Ensure the MariaDB JDBC driver is available and correctly configured.</li><li>Validate MariaDB server connectivity and port access.</li><li>Confirm SSL Enabled configuration is correct.</li><li>Verify connection pooling parameters are properly configured.</li><li>Recreate the connector configuration and validate again.</li></ul></td></tr></tbody></table>

## FAQs

<details>

<summary>What’s the Difference Between Database and Schema in MariaDB?</summary>

In MariaDB, Database and Schema are synonymous and refer to the same concept. The database name is specified in the Database field in the connection configuration. MariaDB uses databases to organize tables, views, procedures, and other objects.

The connection format is: jdbc:mariadb://:/?useSSL= Databases can be listed using SHOW DATABASES; or SELECT SCHEMA\_NAME FROM INFORMATION\_SCHEMA.SCHEMATA;

</details>

<details>

<summary>My Connection String Keeps Changing. Why?</summary>

The system automatically formats the connection string based on the configured Server, Port, Database, and SSL Enabled values. The connection string is automatically generated in the format: jdbc:mariadb://:/?useSSL=\
If the connection string is manually modified, it must match the expected format. After updating any field, verify the connection string is correct before saving.

</details>

<details>

<summary>I Can’t See Any Databases/Schemas When Trying to Crawl. What’s Wrong?</summary>

This is typically a permissions issue. The user must have SELECT privilege on INFORMATION\_SCHEMA.SCHEMATA. The system retrieves schema metadata using: SELECT SCHEMA\_NAME FROM INFORMATION\_SCHEMA.SCHEMATA; Verify the user can execute: SELECT SCHEMA\_NAME FROM INFORMATION\_SCHEMA.SCHEMATA ORDER BY SCHEMA\_NAME; Some system databases such as information\_schema, performance\_schema, mysql, and sys may be filtered out.

</details>

<details>

<summary>I Can See Some Databases but Not All. Why Are Some Missing?</summary>

The system retrieves databases using INFORMATION\_SCHEMA.SCHEMATA, which returns only databases the user has access to. Missing databases usually indicate the user does not have access to those databases. Verify user visibility using:\
SHOW DATABASES;\
Ensure required privileges are granted for the missing databases.

</details>

<details>

<summary>I Can See Tables in One Database but Not Another. What Permissions Do I Need?</summary>

To view tables, the user requires appropriate SELECT privileges on the database or tables. The system retrieves table metadata using: SELECT TABLE\_NAME, TABLE\_COMMENT, TABLE\_TYPE FROM INFORMATION\_SCHEMA.TABLES WHERE TABLE\_SCHEMA = ?; Verify access using: SELECT TABLE\_NAME FROM INFORMATION\_SCHEMA.TABLES WHERE TABLE\_SCHEMA = '\<database\_name>';

</details>

<details>

<summary>Views Are Not Showing Up. How Do I Fix This?</summary>

To retrieve views, the user must have SELECT privilege on INFORMATION\_SCHEMA.VIEWS and required access to view definitions. The system queries views using INFORMATION\_SCHEMA with database filtering. Verify access using: SELECT TABLE\_NAME FROM INFORMATION\_SCHEMA.VIEWS WHERE TABLE\_SCHEMA = '\<database\_name>'; Views are also identified by TABLE\_TYPE = 'VIEW' in INFORMATION\_SCHEMA.TABLES.

</details>

<details>

<summary>Regular Tables Are Not Being Retrieved. What’s the Issue?</summary>

Regular table retrieval requires access to INFORMATION\_SCHEMA.TABLES. The system retrieves tables using TABLE\_SCHEMA filtering. Verify the user can retrieve base tables using: SELECT TABLE\_NAME FROM INFORMATION\_SCHEMA.TABLES WHERE TABLE\_SCHEMA = '\<database\_name>' AND TABLE\_TYPE = 'BASE TABLE'; Ensure the database name is correct and the table is not excluded by crawler exclude patterns.

</details>

<details>

<summary>Some Columns Are Missing From My Table. Why?</summary>

Column visibility may be impacted due to data type handling. Unsupported types such as BLOB and LONGBLOB are skipped during profiling, but they may still appear in metadata. Column metadata is retrieved using INFORMATION\_SCHEMA.COLUMNS. Verify column retrieval and data types from the database metadata query.

</details>

<details>

<summary>I’m Getting Errors When Trying to Profile Certain Columns. Why?</summary>

Some column data types are not supported for profiling, especially BLOB and LONGBLOB. These columns are skipped and may display an unsupported type message. Supported text types such as TEXT, LONGTEXT, MEDIUMTEXT, and NTEXT are handled differently. Ensure the user has SELECT privilege on the actual table and verify the column data type before profiling.

</details>

<details>

<summary>Column Nullable Status Is Showing Incorrectly. How Do I Fix This?</summary>

Nullable status is retrieved from INFORMATION\_SCHEMA.COLUMNS using the IS\_NULLABLE field. MariaDB returns:

* YES = Nullable
* NO = Not Nullable

The system converts YES to true and NO to false. Verify the nullable status using:\
SELECT COLUMN\_NAME, IS\_NULLABLE FROM INFORMATION\_SCHEMA.COLUMNS WHERE TABLE\_SCHEMA = '\<database>' AND TABLE\_NAME = '\<table>';\
If the issue persists, confirm MariaDB version compatibility.

</details>

***

&#x20;Copyright © 2025, OvalEdge LLC, Peachtree Corners GA USA
