Seite 1 von 1

[solved] JVerein Neuanlage auf MariaDB/MySQL platzt wegen zu großer ROW in EINSTELLUNG

Verfasst: Sonntag 23. Juli 2023, 12:50
von JPT
Hallo,

ich bin gerade dabei, eine Jameica/JVerein-Instanz neu aufzusetzen auf einer MariaDB in Standard-Debian12.

Es hageln beim erstellen der Tabellen eine Menge Fehler. Mir scheint, das kommt nicht von der MariaDB sondern schlicht von Fehlern der SQL-Skripte?!
(siehe Log im Anhang, es scheint dass der Anfang fehlt - löscht jameica?)

könnte mal jemand reingucken?

dankeschön

die Datenbank-Config:

Code: Alles auswählen

database.driver=de.jost_net.JVerein.server.DBSupportMySqlImpl
database.driver.mysql.jdbcurl=jdbc\:mariadb\://localhost\:3306/jverein?serverTimezone=Europe/Berlin&useUnicode\=Yes&characterEncoding\=ISO8859_1&allowPublicKeyRetrieval\=true
database.driver.mysql.username=jverein
database.driver.mysql.password=password
database.driver.mysql.jdbcdriver=org.mariadb.jdbc.Driver
database.driver.mysql.scriptprefix=mysql-
jameica-jverein-init.zip
(2.42 KiB) 203-mal heruntergeladen

Re: Viele SQL-Fehler bei Neuanlage Datenbank in MariaDB

Verfasst: Sonntag 23. Juli 2023, 17:17
von JPT
Ich habe die Ursache gefunden:
ALTER TABLE `einstellung` ADD COLUMN `dokumentenspeicherung_b` BIT(1) AFTER `dokumentenspeicherung`
Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

VARCHAR(x) müssen in MySQL/MariaDB als TEXT werden, sonst sprengen sie die ROW-Size.
Alternativ müssen sie länger als 256 Zeichen sein, dann dürfen sie aus dem Hauptdatensatz ausgelagert werden.

Nur wie tu ich das jetzt workarounden?

Re: Viele SQL-Fehler bei Neuanlage Datenbank in MariaDB

Verfasst: Sonntag 23. Juli 2023, 18:14
von JPT
Solved:
  • SET GLOBAL innodb_strict_mode=OFF;
  • Datenbank von JVerein anlegen lassen
  • SET GLOBAL innodb_strict_mode=ON;
  • einige VARCHAR Felder in der EINSTELLUNG Tabelle ändern... keine Ahnung. Auf TEXT? oder andere Länge?
ps. Die Längengrenze von VARCHAR für das Auslagern ist unterschiedlich, je nachdem welcher zeichensatz verwendet wird.

Siehe auch https://mariadb.com/kb/en/troubleshooti ... th-innodb/