Minecraft MySQL JDBC
Актуальный MySQL Connector/J, обёрнутый как универсальная библиотека Forge/Fabric/Bukkit для плагинов вроде Grim.
- Загрузчики
- FabricNeoForgeForgeQuilt
- Скачиваний на Modrinth
- 2,2 тыс.
- Подписчиков на Modrinth
- 0
- версии
- 4
- Обновлён
- 16 октября 202616 окт.
- Опубликован
- в 2026
Коротко о моде
Автор не указал, где нужен мод
MySQL Connector/J для Minecraft
Официальный MySQL Connector/J от Oracle, переупакованный как плагин для Bukkit/Spigot/Paper и мод для Fabric/Forge/NeoForge.
На заметку: CraftBukkit/Spigot/Paper тащат MySQL Connector/J в родительском classloader сервера ещё с 1.4 (эпоха «ebeans»). Для стандартного JDBC-пути (
Class.forName("com.mysql.cj.jdbc.Driver")/DriverManager.getConnection) побеждает встроенный драйвер — установка этого мода ничего не меняет. Мод в первую очередь полезен на Fabric, NeoForge и форках Bukkit, из которых вырезали встроенный драйвер. Если тебе нужен именно коннектор из этого мода, а не встроенный (например, версия поновее), используй публичный API — см. Использование коннектора из этого мода через публичный API ниже.
Что внутри jar
com.mysql:mysql-connector-j:9.1.0 плюс минимальные заглушки загрузчиков для Spigot, Forge 1.12, Forge 1.13–1.16, Forge 1.17–1.20, NeoForge 1.21+ и Fabric. Без релокации — классы com.mysql.cj.* остаются на канонических путях, так что Class.forName("com.mysql.cj.jdbc.Driver") их находит. META-INF/services/java.sql.Driver сохранён, поэтому драйвер сам регистрируется в DriverManager.
Переименование mysql:mysql-connector-java → com.mysql:mysql-connector-j произошло в connector-j 8.x. Имя класса com.mysql.cj.jdbc.Driver работает и со старыми, и с новыми координатами артефакта, так что рантайм-проба стабильна.
Совместимость
| Загрузчик | Версии MC | Примечания |
|---|---|---|
| Bukkit / Spigot / Paper / Folia / Purpur | 1.8 → текущая | обычно не нужен — драйвер встроен в сервер |
| Fabric | 1.16.1 → текущая | нужен Fabric Loader 0.14+ |
| Forge | 1.12 → 1.20 | универсальный jar, без Mixins |
| NeoForge | 1.21 → текущая | кидай в mods/ |
Требуется Java 8+.
Подводные камни строки подключения, о которых стоит знать
Драйверы 5.1.x и 8+ по умолчанию ведут себя так, что для реальных развёртываний почти всегда нужно переопределять настройки:
useSSL=true— значение по умолчанию, падает на любом MySQL-сервере без публичного сертификата, подписанного CA. СтавьuseSSL=falseдля открытого текста или добавьverifyServerCertificate=false, если у тебя самоподписанный сертификат.caching_sha2_password(дефолт MySQL 8) требуетallowPublicKeyRetrieval=trueдля аутентификации по незашифрованному каналу, иначе рукопожатие падает сPublic Key Retrieval is not allowed.rewriteBatchedStatements=trueсворачивает JDBC-батчи INSERT в многострочную форму на проводе. Без него батч-операции всё равно идут N round-trip'ов.
Типичный URL:
jdbc:mysql://host:3306/db?useSSL=false&allowPublicKeyRetrieval=true&rewriteBatchedStatements=trueMariaDB говорит по протоколу MySQL на проводе, так что этот драйвер работает и с MariaDB. Если хочешь нативный коннектор MariaDB — это отдельный драйвер, и здесь он не рассматривается.
Версионирование
Версия jar один в один повторяет connector-j. 9.1.0+2026-04-25 содержит connector-j 9.1.0; суффикс — дата сборки. Запланированный GitHub Action проверяет Maven Central ежедневно и обновляет автоматически.
Использование коннектора из этого мода через публичный API
Если тебе нужен именно коннектор из этого мода, а не встроенный — чтобы обновиться поверх устаревшего драйвера из форка или протестировать новую версию коннектора — твой плагин делает softdepend на этот холдер и вызывает MinecraftMysqlJdbc.connect(url, props):
# в твоём 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` оборачивает `URLClassLoader` с приоритетом дочернего загрузчика, указывающий на этот jar, с родителем в виде платформенного загрузчика классов, поэтому `com.mysql.cj.*` должны браться из этого jar (а не из встроенной цепочки). Возвращаемый `Connection` — это стандартный `java.sql.Connection` — держите приведения к интерфейсам `java.sql.*`; класс реализации живёт в дочернем загрузчике классов и не приведётся через границу.
Поверхность API (всё статическое):
| Метод | Возвращает |
|---|---|
| `connect(String url)` | открытый `Connection` через этот драйвер |
| `connect(String url, Properties props)` | то же самое с props |
| `driver()` | экземпляр `java.sql.Driver` |
| `driverVersion()` | версия connector-j (например, `"9.1"`) |
| `eagerInit()` | прогреть загрузчик классов при включении плагина |
| `shutdown()` | освободить файловые дескрипторы при отключении плагина |
MySQL-бэкенд Grim Anti-Cheat использует этот API автоматически, когда установлен этот holder.
## Лицензия
GPL-2.0 с [Universal FOSS Exception 1.0](https://oss.oracle.com/licenses/universal-foss-exception/). Исключение делает драйвер совместимым с любым плагином или модом для Minecraft под FOSS-лицензией (это та же лицензия, с которой Oracle поставляет бинарник Connector/J). Тег лицензии на Modrinth показывает GPL-2.0-only, потому что в списке SPDX нет единого идентификатора для комбинации GPL-2 + FOSS Exception — полный текст в [`LICENSE`](https://github.com/Axionize/minecraft-mysql-jdbc/blob/main/LICENSE).
---
Issues, исходники: [GitHub](https://github.com/Axionize/minecraft-mysql-jdbc).Частые вопросы
Как установить Minecraft MySQL JDBC?
Установите Fabric под свою версию Minecraft, скачайте Minecraft MySQL JDBC под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Minecraft MySQL JDBC?
У Minecraft MySQL JDBC есть сборки для Minecraft 1.12.2–26.3.