Maria DB
MariaDB is an open-source relational database management system (RDBMS) that was originally forked from MySQL. It offers high performance, scalability, and compatibility with MySQL, while adding new features, storage engines, and security enhancements. It is widely used for web applications, analytics, and enterprise solutions.
Prerequisites
The following prerequisites must be met in order for a user to create and test a successful connection.
- The MariaDB server must be accessible from the iceDQ server.
- Valid credentials to access the database.
- MariaDB JDBC version 3.3.2 or above.
Authentication Mechanism
The following authentication mechanism is supported.
- Username & Password
Connection Properties
Use the following properties to create a valid connection. Properties marked with an asterisk (*) are required.
Name | Description | Example Values |
---|---|---|
Connection Name * | Name that uniquely identifies the connection. | MariaDB_Prod_conn |
Driver * | Driver used to establish the connection. One driver is available by default. | MariaDB Native JDBC |
Custom JDBC URL | Standardized string used to define the connection details. Use this format supported by the driver: jdbc:mariadb://[host]:[port]/[database] | jdbc:mariadb://174.149.26.32:3306/acme_db |
Host * | IP address or hostname of the MariaDB database server. | mariadb.acme.com or 174.149.26.32 |
Port * | Port on which the server listens. Default is 3306 for MariaDB. | 3306 |
Database * | Name of the target database in MariaDB. | acme_db |
Type * | The connection type – either System Connection or User Connection. Refer to Connections for more details. | System or User |
Username * | Database login username with necessary privileges. | john_doe |
Password * | Password associated with the specified username. | mariadb_password |
Custom Properties
The following optional connection properties can be configured based on user requirements.
Property | Default Value | Possible Values | Description |
---|---|---|---|
connectTimeout | 30000 | Integer (ms) | The connect timeout value in milliseconds. 0 for no timeout. |
useServerPrepStmts | false | true, false | Prepares statements on the server side before execution. Useful for repeated queries. |
allowLocalInfile | true | true, false | Permit loading data from file using LOAD DATA LOCAL INFILE . |
useMysqlMetadata | false | true, false | Forces DatabaseMetaData.getDatabaseProductName() to return "MySQL" for compatibility with frameworks that don't support MariaDB. |
restrictedAuth | null | Comma-separated list of authentication plugins | Restricts allowed authentication plugins. |
timezone | disabled | disabled, <timezone> | Forces session timezone. |
sslMode | disable | disable, trust, verify-ca, verify-full | Enables SSL/TLS in a specific mode. |
serverSslCert | N/A | Path, classpath resource, or certificate string | Provides server’s certificate or CA certificate for trusting self-signed certificates. |
keyStore | N/A | File path | Path of the keyStore containing client private key and certificates. |
keyStorePassword | N/A | Any string | Password for the client certificate keyStore. |
enabledSslCipherSuites | JRE default | Comma-separated cipher list | Forces TLS/SSL cipher list. |
keyStoreType | null (Java default) | JKS, PKCS12 | Type of keyStore. |
enabledSslProtocolSuites | Java default | Comma-separated protocol list (e.g., TLSv1, TLSv1.1, TLSv1.2) | Forces TLS/SSL protocol suite. |
pool | false | true, false | Use pool instead of DataSource. |
poolName | Auto-generated | Any string | Pool name identifier. |
maxPoolSize | 8 | Integer | Maximum number of physical connections in pool. |
minPoolSize | maxPoolSize | Integer | Minimum number of connections kept in pool. |
poolValidMinDelay | 1000 | Integer (ms) | Minimum delay before validating a reused connection. |
maxIdleTime | 600 (s) | Integer (≥60s) | Maximum idle time for pooled connections. |
useResetConnection | false | true, false | Resets connection state when returned to pool. |
registerJmxPool | true | true, false | Register JMX monitoring for pools. |
Supported Datatypes
The following data types are supported.
- TINYINT
- SMALLINT
- MEDIUMINT
- INT
- BIGINT
- DECIMAL
- FLOAT
- DOUBLE
- BIT
- CHAR
- VARCHAR
- TEXT
- TINYTEXT
- MEDIUMTEXT
- LONGTEXT
- DATE
- DATETIME
- TIMESTAMP
- TIME
- YEAR
- ENUM
- SET
- JSON
- UUID
Unsupported Datatypes
The following data types are not supported.
- BINARY
- VARBINARY
- TINYBLOB
- MEDIUMBLOB
- LONGBLOB
- OID