Hallo!
Ich habe versucht auf Ubuntu 18.04 mit MariaDB die Daten von Fakturama zu speichern. Ich bekomme dabei folgenden Fehler:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:404) at com.mysql.jdbc.Util.getInstance(Util.java:387) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:939) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2547) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2505) at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:840) at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:740) at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:299) ... 36 more
Meine Datenbank wurde mit dem Zeichensatz utf84mb angelegt, um vollständig UNICODE-fähig zu sein (Emoticons...)
Da ein Unicode-Zeichen im Zweifel die vierfache Länge eines normalen haben kann, benötigt die Datenbank ggf. auch das Vierfache an Speicher. Sie kann also nicht "ja" sagen beim Anlegen einer Tabelle, wenn die maximale Feldgröße in Bytes die maximal zulässige Länge in Bytes überschreiten würde.
Oder auf Deutsch: wenn die Speicherung sichergestellt sein soll, dann belegt evtl. jedes Zeichen vier Byte, die Länge eines Datenfeldes kann also nur ein Viertel so groß sein, wie die maximale Länge in Bytes.
Vielleicht helfen meine Gedanken?!? Vielleicht ist es auch was anderes? Ich benutze Version 2.0.1
Beste Grüße, Martin
Hallo Martin,
den Fehler hatten wir hier auch schon mal. Das liegt daran, daß MariaDB (warum auch immer) eine andere Row-Size als MySQL hat (obwohl die ja eigentlich miteinander verwandt sein sollen). Man kann die Größe aber einstellen (über die my.ini, glaube ich). Ich muß mich nochmal belesen, wie wir das gelöst hatten.
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Hallo,
hatte hier mit Fakturama 2.0.5 und MariaDB 10.2.31 unter OpenSuse das gleiche Problem bei der Ersteinrichtung.
Ich habe die Datenbank gelöscht und neu erstellt mit
CREATE DATABASE fakturama CHARACTER SET utf8;
Damit funktioniert es jetzt.
Bio-Knoblauch Spezialitäten Versand & mehr
15+ verschiedene Sorten
klimaschonend angebaut mit Zugpferden
https://Shop.Tannenhof-Imshausen.de
Moin, das habe ich jetzt mit Version 2.1.0 korrigiert. Man kann (und sollte) jetzt utf8mb4 verwenden.
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Hallo Ralf, danke für die Info. Wann kommt denn Version 2.1? Warte ich noch solange oder ist ein Umstellen der Datenbank später möglich?
Bio-Knoblauch Spezialitäten Versand & mehr
15+ verschiedene Sorten
klimaschonend angebaut mit Zugpferden
https://Shop.Tannenhof-Imshausen.de
Ich hab die neue Version soeben (wieder) veröffentlicht. Es gab da noch ein paar (scheinbare) Fehler, die aber ausgeräumt werden konnten. Du kannst also die neueste Version herunterladen und verwenden.
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?