Artifactory MariaDB Configuration

Configure JFrog Artifactory to connect to an external MariaDB database by downloading the JDBC driver and updating the database settings in system.yaml.

  1. Download the MariaDB JDBC driver from the MariaDB website and copy the mariadb-java-client-<version>.jar file to the following directory. Assign the driver the same permissions as the other files in the directory:

    $JFROG_HOME/artifactory/var/bootstrap/artifactory/tomcat/lib
  2. Adjust the database connection details in the system.yaml configuration file. For example:

    shared:
      database:
        allowNonPostgresql: true
        type: mariadb
        driver: org.mariadb.jdbc.Driver
        url: jdbc:mariadb://<your db server url, for example: localhost:3306>/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true&useSSL=false&useMysqlMetadata=true
        username: artifactory
        password: password
⚠️

Storing BLOBs inside MariaDB

The recommended configuration stores all artifact information in MariaDB while the artifact binary data is stored on the file system (under $JFROG_HOME/artifactory/var/data/artifactory/filestore).

While it is not recommended, you can store BLOBs inside MariaDB if the typical BLOB size is relatively small. Storing large BLOBs in MariaDB can cause memory issues because MariaDB buffers BLOBs rather than streaming them (see MySQL Bug #15089). This can result in OutOfMemory errors with large binaries depending on your JVM heap size.

To store BLOBs in MariaDB, configure the Filestore with the Full-DB and Full-DB-Direct Binary Providers and set max_allowed_packet higher than the maximum artifact size you intend to store in Artifactory.