MartenM / ServerTutorialPlus

A simple to use but feature rich plugin to guide players around your server.
18 stars 13 forks source link

SQL Error Specified key was too long #42

Open isaaclepes opened 3 years ago

isaaclepes commented 3 years ago

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.

MartenM commented 3 years ago

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 :)

isaaclepes commented 3 years ago

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