MartenM/ServerTutorialPlus

SQL Error Specified key was too long

Opened this issue · 2 comments

Plugin produced error after configuring SQL to a mariadb server.

The problem

Error while performing an SQL query! Specified key was too long; max key length is 767 bytes

Steps to Reproduce

  1. Setup a MariaDB server and create a database for server tutorials
  2. Configure access permissions
  3. edit config.yml
  4. restart server
  5. watch log for error [Server Tutorial Plus] Error while performing an SQL query! Specified key was too long; max key length is 767 bytes

Work-around:
The error is produced when Server Tutorials Plus attempts to create the Tutorial_Players table.
I looked at the source code and hand-crafted this query and input it manually to mariadb.

CREATE TABLE Tutorial_Players ( uui VARCHAR(64) NOT NULL, tutorial VARCHAR(255), KEY PRIMARY KEY (uui,tutorial) USING BTREE );

After creating the table manually, server tutorials plus is seemingly able to use it.

That's very odd. This only occurs when creating the table on startup?
Will try to debug this when I find some time.

Edit: Full stacktrace would be appiciated :)

Log with stack trace
https://pastebin.com/r90tzJ90

Notes:

Connecting as 'root' user to MariaDB
MariaDB is on a different system
All other SQL supporting plugins on the Minecraft server are using the same MariaDB and credentials with their own databases. None of the others had issues creating tables
git-Paper-279 (MC: 1.16.4) (Implementing API version 1.16.4-R0.1-SNAPSHOT)

Plugins (23): AsyncWorldEdit, Autorank, BanFromClaim, DynamicShop, dynmap*, Dynmap-GriefPrevention*, Essentials, EssentialsChat, EssentialsGeoIP, GPAccruals*, GPTeleport, GriefPrevention, GriefPreventionFlags, GriefPreventionUtilities, HolographicDisplays, LuckPerms, mcMMO, RealEstate, ServerTutorialPlus*, ShopChest, Statz, Vault, WorldEdit