Вчера надстроих OpenBSD 6.9 до 7.0.
Това донесе надстройка на MariaDB:10.5 до 10.6.
Проверих my.cnf
промени и изглеждаше всичко наред.
Въпреки това бе открит проблем на сървър на NextCloud, използващ MariaDB на OpenBSD.
Това, което се случи, беше неуспехът при актуализирането на пакета.
Свързах се със сървъра NextCloud с уеб браузър. Нямаше таблото за управление на приложението и вместо това актуализаторът чакаше да бъде стартиран. Това означаваше pkg_add -u
не успя да актуализира NextCloud. Щракването върху бутона за стартиране на страницата показва, че се е случило някакво изключение.
Прочетох nextcloud.log
в сървъра и получи:
"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,
Що се отнася до COMPRESSED
формат на ред, MariaDB е на път да го остави само за четене, като „премахне поддръжката за запис и оттегли функцията“.
Те въведоха innodb_read_only_compressed¶
опция в 10.6.0, която беше ON
по подразбиране.
Ето защо актуализирането на NextCloud (от 21.0.4) до 21.0.5 на OpenBSD 7.0 се провали. Това не се дължи на версията на ОС или приложението, а на съвместимостта с MariaDB, чиято версия е по-голяма или равна на 10.6.0.
Има открит проблем, свързан с него в репозитория на NextCloud.
Е, редактирах /etc/my.cnf
временно за решаване на проблема:
[mysqld]
(...)
+ innodb_read_only_compressed = 0
Освен това не открих как да го настроя на конкретна база данни или таблица и дори възможност😅
Рестартирах mysqld
на сървъра и отново опитах програмата за актуализиране на уеб страницата. В крайна сметка беше напълно успешен.
Оценявах документацията на MariaDB и няколко публикации като проблеми с Github и блогове. Помогнаха ми много.