Ik heb gisteren OpenBSD 6.9 naar 7.0 geüpgraded.
Het bracht MariaDB-upgrade:10.5 naar 10.6.
Ik heb my.cnf
. gecontroleerd veranderen en het leek in orde.
Desalniettemin werden er problemen gevonden op een NextCloud-server die MariaDB op OpenBSD gebruikte.
Wat er gebeurde, was het falen van het updaten van het pakket.
Ik heb verbinding gemaakt met de NextCloud-server met een webbrowser. Er was geen app-dashboard en de updater wachtte in plaats daarvan om te worden gestart. Het betekende pkg_add -u
had NextCloud niet bijgewerkt. Door op de startknop op de pagina te klikken, bleek er een uitzondering te zijn opgetreden.
Ik lees nextcloud.log
in de server en kreeg:
"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,
Wat betreft COMPRESSED
rij-indeling, is MariaDB op weg om het alleen-lezen te laten door "schrijfondersteuning te verwijderen en de functie te beëindigen".
Ze introduceerden innodb_read_only_compressed¶
optie bij 10.6.0 die ON
. was standaard.
Dat was de reden waarom het updaten van NextCloud (van 21.0.4) naar 21.0.5 op OpenBSD 7.0 mislukte. Het was niet vanwege de OS- of app-versie, maar de compatibiliteit met MariaDB waarvan de versie groter is dan of gelijk is aan 10.6.0.
Er is een openstaand probleem in de NextCloud-repo.
Nou, ik heb /etc/my.cnf
. aangepast tijdelijk om het probleem op te lossen:
[mysqld]
(...)
+ innodb_read_only_compressed = 0
Trouwens, ik vond niet hoe ik het op een specifieke database of een tabel moest instellen en zelfs niet de mogelijkheid😅
Ik herstartte mysqld
in de server en probeerde de updater op de webpagina opnieuw. Het was tenslotte helemaal geslaagd.
Ik waardeerde de MariaDB-documentatie en verschillende berichten zoals Github-problemen en blogs. Ze hebben me erg geholpen.