J'ai mis à jour OpenBSD 6.9 vers 7.0 hier.
Il a apporté la mise à niveau de MariaDB :10.5 à 10.6.
J'ai vérifié my.cnf
changer et tout semblait correct.
Néanmoins, un problème a été trouvé sur un serveur NextCloud utilisant MariaDB sur OpenBSD.
Ce qui s'est passé, c'est l'échec de la mise à jour du package.
Je me suis connecté au serveur NextCloud avec un navigateur Web. Il n'y avait pas de tableau de bord de l'application et le programme de mise à jour attendait d'être démarré à la place. Cela signifiait pkg_add -u
n'avait pas réussi à mettre à jour NextCloud. Cliquer sur le bouton de démarrage sur la page a fini par montrer qu'une exception s'était produite.
J'ai lu nextcloud.log
dans le serveur et a obtenu :
"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,
Quant à COMPRESSED
format de ligne, MariaDB est sur le point de le laisser en lecture seule en "supprimant le support d'écriture et en dépréciant la fonctionnalité".
Ils ont introduit innodb_read_only_compressed¶
option à 10.6.0 qui était ON
par défaut.
C'est pourquoi la mise à jour de NextCloud (de 21.0.4) à 21.0.5 sur OpenBSD 7.0 a échoué. Ce n'était pas à cause de la version du système d'exploitation ou de l'application, mais de la compatibilité avec MariaDB dont la version est supérieure ou égale à 10.6.0.
Il y a un problème ouvert lié à cela dans le dépôt NextCloud.
Eh bien, j'ai édité /etc/my.cnf
temporairement pour résoudre le problème :
[mysqld]
(...)
+ innodb_read_only_compressed = 0
D'ailleurs, je n'ai pas trouvé comment le mettre sur une base de données ou une table spécifique et même la possibilité😅
J'ai redémarré mysqld
sur le serveur et réessayez le programme de mise à jour sur la page Web. Après tout, c'était totalement réussi.
J'ai apprécié la documentation de MariaDB et plusieurs articles tels que les problèmes et les blogs de Github. Ils m'ont beaucoup aidé.