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.