MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MariaDB 10.6 und NextCloud:COMPRESSED Row ist standardmäßig schreibgeschützt

Ich habe gestern OpenBSD 6.9 auf 7.0 aktualisiert.
Es brachte MariaDB-Upgrade:10.5 auf 10.6.
Ich habe my.cnf überprüft ändern und es schien in Ordnung zu sein.
Trotzdem wurde ein Problem auf einem NextCloud-Server gefunden, der MariaDB auf OpenBSD verwendet.

Was passiert ist, war das Fehlschlagen der Aktualisierung des Pakets.
Ich habe mich mit dem Webbrowser mit dem NextCloud-Server verbunden. Es gab kein App-Dashboard, stattdessen wartete der Updater darauf, gestartet zu werden. Es bedeutete pkg_add -u konnte NextCloud nicht aktualisieren. Beim Klicken auf die Startschaltfläche auf der Seite wurde angezeigt, dass eine Ausnahme aufgetreten ist.

Ich lese nextcloud.log auf dem Server und bekam:

"level":3,
(...)
"Exception":"Doctrine\\DBAL\\Exception\\DriverException",
"Message":"An exception occurred while executing a query: 
SQLSTATE[HY000]: 
General error: 
4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.","Code":4047,

Was COMPRESSED betrifft Zeilenformat, MariaDB ist auf dem Weg, es schreibgeschützt zu machen, indem "Schreibunterstützung entfernt und die Funktion veraltet" wird.
Sie haben innodb_read_only_compressed¶ eingeführt Option bei 10.6.0, die ON war standardmäßig.

Aus diesem Grund schlug die Aktualisierung von NextCloud (von 21.0.4) auf 21.0.5 unter OpenBSD 7.0 fehl. Es lag nicht an der Betriebssystem- oder App-Version, sondern an der Kompatibilität mit MariaDB, deren Version größer oder gleich 10.6.0 ist.
Es gibt ein diesbezügliches offenes Problem im NextCloud-Repo.

Nun, ich habe /etc/my.cnf bearbeitet vorübergehend um das Problem zu lösen:

  [mysqld]
  (...)
+ innodb_read_only_compressed = 0

Außerdem habe ich nicht gefunden, wie man es auf eine bestimmte Datenbank oder eine Tabelle setzt und nicht einmal die Möglichkeit😅

Ich habe mysqld neu gestartet im Server und versuchten den Updater auf der Webseite erneut. Immerhin war es ein voller Erfolg.

Ich habe die MariaDB-Dokumentation und mehrere Posts wie Github-Probleme und Blogs sehr geschätzt. Sie haben mir sehr geholfen.