
Modrinth · Minecraft mod
Minecraft MySQL JDBC
Up-to-date MySQL Connector/J wrapped as a universal Forge/Fabric/Bukkit library for plugins like Grim.
Quick answer
Which Minecraft MySQL JDBC release should I use?
Minecraft MySQL JDBC 9.7.0+2026-05-03 targets 1.12.2, 1.13, 1.13.1 with bukkit, Fabric, folia. The project page does not say whether this file belongs on the client, dedicated server, or both. No extra mods listed for this file.
Where it goes
Is Minecraft MySQL JDBC required on the client, server, or both?
The project page does not say whether this file belongs on the client, dedicated server, or both.
The source does not explicitly classify this release as client-only or server-only.
What else does Minecraft MySQL JDBC 9.7.0+2026-05-03 need?
9.7.0+2026-05-03. Change the file and its required mods may change too.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add Minecraft MySQL JDBC without breaking your instance.
Built for Minecraft MySQL JDBC 9.7.0+2026-05-03. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use 9.7.0+2026-05-03. It targets 1.12.2, 1.13, 1.13.1 with bukkit, Fabric, folia; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
The project page does not say whether this file belongs on the client, dedicated server, or both.
- 04
Pick the file you checked
Use the “Get this file” button beside 9.7.0+2026-05-03. It opens that exact file at the source.
About this project
What does Minecraft MySQL JDBC add?
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-java → com.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=trueis the default — fails against any MySQL server without a public CA-signed cert. SetuseSSL=falsefor plaintext, or addverifyServerCertificate=falseif you have a self-signed cert.caching_sha2_password(MySQL 8 default) needsallowPublicKeyRetrieval=truefor unencrypted-channel auth, otherwise the handshake fails withPublic Key Retrieval is not allowed.rewriteBatchedStatements=truefolds 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.
Project description from Modrinth.
Pick your setup
Minecraft MySQL JDBC by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
26.1.1
4 loader builds26.1
4 loader builds1.21.11
4 loader builds1.21.10
4 loader builds1.21.9
4 loader builds1.21.8
4 loader builds1.21.7
4 loader builds1.21.6
4 loader builds1.21.5
4 loader builds1.21.4
4 loader builds1.21.3
4 loader buildsShowing the newest 12 of 50 game versions. Older files are in the list below.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Minecraft MySQL JDBC versions and loaders
9.7.0+2026-05-03
mysql-connector-j-9.7.0+2026-05-03-all.jar
6 Jun 2026
9.7.0+2026-05-03
mysql-connector-j-9.7.0+2026-05-03-all.jar
3 May 2026
9.1.0+2026-04-25
mysql-connector-j-9.1.0+2026-04-25-all.jar
26 Apr 2026
Looking for an older file? The official Modrinth project page is in Resources.