Minecraft MySQL JDBC

Quick rating

Minecraft MySQL JDBC

No reviews yet

Up-to-date MySQL Connector/J wrapped as a universal Forge/Fabric/Bukkit library for plugins like Grim.

API/Library
Mod Loaders
Forge
NeoForge
Fabric
Paper
Spigot
Quilt
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Unknown
Server Unknown

About

Project Details

Type
Mod
License
GNU General Public License v2.0 only
Latest Version
9.7.0+2026-05-03
Authors

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

MySQL Connector/J for Minecraft

Oracle's official MySQL Connector/J repackaged as a Bukkit/Spigot/Paper plugin and a Fabric/Forge/NeoForge mod.

Heads up: CraftBukkit/Spigot/Paper have shipped MySQL Connector/J on the server's parent classloader since 1.4 (the "ebeans" era). For the default JDBC path (Class.forName("com.mysql.cj.jdbc.Driver") / DriverManager.getConnection) the bundled driver wins — installing this mod doesn't change that. This mod is primarily useful on Fabric, NeoForge, and Bukkit forks that strip the bundled driver. If you specifically want this mod's connector instead of the bundled one (e.g. for a newer connector version), use the public API — see Using this mod's connector via the public API below.

What's in the jar

com.mysql:mysql-connector-j:9.1.0 plus minimal loader stubs for Spigot, Forge 1.12, Forge 1.13–1.16, Forge 1.17–1.20, NeoForge 1.21+, and Fabric. No relocation — com.mysql.cj.* classes stay at canonical paths so Class.forName("com.mysql.cj.jdbc.Driver") finds them. META-INF/services/java.sql.Driver is preserved so the driver auto-registers with DriverManager.

The mysql:mysql-connector-javacom.mysql:mysql-connector-j rename happened in connector-j 8.x. The class name com.mysql.cj.jdbc.Driver works across both old and new artifact coords, so the runtime probe is stable.

Compatibility

Loader MC versions Notes
Bukkit / Spigot / Paper / Folia / Purpur 1.8 → current usually unnecessary — driver is server-bundled
Fabric 1.16.1 → current needs Fabric Loader 0.14+
Forge 1.12 → 1.20 universal jar, no Mixins
NeoForge 1.21 → current drop into mods/

Java 8+ required.

Connection-string gotchas worth knowing

The 5.1.x and 8+ drivers default to behaviours that almost always need overriding for real deployments:

  • useSSL=true is the default — fails against any MySQL server without a public CA-signed cert. Set useSSL=false for plaintext, or add verifyServerCertificate=false if you have a self-signed cert.
  • caching_sha2_password (MySQL 8 default) needs allowPublicKeyRetrieval=true for unencrypted-channel auth, otherwise the handshake fails with Public Key Retrieval is not allowed.
  • rewriteBatchedStatements=true folds JDBC batch INSERTs into multi-row form on the wire. Without it, batch operations are still N round-trips.

Typical URL:

jdbc:mysql://host:3306/db?useSSL=false&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true

MariaDB speaks the MySQL protocol on the wire, so this driver works against MariaDB too. If you want the MariaDB-native connector instead, it's a separate driver and not in scope here.

Versioning

The jar version tracks connector-j one-to-one. 9.1.0+2026-04-25 ships connector-j 9.1.0; the suffix is the build date. A scheduled GitHub Action checks Maven Central daily and bumps automatically.

Using this mod's connector via the public API

If you specifically want this mod's connector instead of the bundled one — to upgrade past a stale fork's bundled driver, or to test a newer connector version — your plugin softdepends on this holder and calls MinecraftMysqlJdbc.connect(url, props):

# in your plugin.yml
softdepend: [mysql-jdbc]
Properties props = new Properties();
props.setProperty("user", "grim");
props.setProperty("password", "...");
Connection c;
try {
    c = MinecraftMysqlJdbc.connect("jdbc:mysql://host:3306/db?useSSL=false", props);
} catch (NoClassDefFoundError | ClassNotFoundException notInstalled) {
    c = DriverManager.getConnection("jdbc:mysql://host:3306/db?useSSL=false", props);
}

MinecraftMysqlJdbc wraps a child-first URLClassLoader pointing at this jar, parented to the platform classloader so com.mysql.cj.* must come from this jar (not the bundled chain). The returned Connection is a standard java.sql.Connection — keep your casts to java.sql.* interfaces; the impl class lives in the child-first classloader and won't down-cast across the boundary.

API surface (all static):

Method Returns
connect(String url) open Connection through this driver
connect(String url, Properties props) as above with props
driver() the java.sql.Driver instance
driverVersion() connector-j version (e.g. "9.1")
eagerInit() warm the classloader at plugin enable
shutdown() release file handles on plugin disable

Grim Anti-Cheat's MySQL backend uses this API automatically when this holder is installed.

License

GPL-2.0 with the Universal FOSS Exception 1.0. The exception makes the driver compatible with any FOSS-licensed Minecraft plugin or mod (it's the same license Oracle ships with the Connector/J binary). Modrinth's license tag shows GPL-2.0-only because the SPDX list doesn't have a single identifier for the GPL-2 + FOSS Exception combo — full text in LICENSE.


Issues, source: GitHub.

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Downloads
Last Updated
CurseForge
Modrinth
Created
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works