sql >> Database teknologi >  >> RDS >> MariaDB

MariaDB 10.6 og NextCloud:COMPRESSED Row er skrivebeskyttet som standard

Jeg opgraderede OpenBSD 6.9 til 7.0 i går.
Det bragte MariaDB-opgradering:10.5 til 10.6.
Jeg tjekkede my.cnf ændre sig, og det virkede i orden.
Ikke desto mindre blev der fundet problemer på en NextCloud-server ved hjælp af MariaDB på OpenBSD.

Det der skete var fejlen i at opdatere pakken.
Jeg oprettede forbindelse til NextCloud-serveren med webbrowser. Der var ikke app-dashboardet, og opdateringsprogrammet ventede på at blive startet i stedet. Det betød pkg_add -u havde undladt at opdatere NextCloud. Ved at klikke på startknappen på siden endte det med at vise, at der var sket en undtagelse.

Jeg læste nextcloud.log i serveren og fik:

"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,

Med hensyn til COMPRESSED rækkeformat, MariaDB er på vej til at lade det skrivebeskyttet ved at "fjerne skriveunderstøttelse og udfase funktionen".
De introducerede innodb_read_only_compressed¶ mulighed ved 10.6.0, som var ON som standard.

Det var grunden til, at opdatering af NextCloud (fra 21.0.4) til 21.0.5 på OpenBSD 7.0 mislykkedes. Det var ikke på grund af OS eller app-version, men kompatibiliteten med MariaDB, hvis version er større end eller lig med 10.6.0.
Der er et åbent problem relateret til det i NextCloud-repoen.

Nå, jeg redigerede /etc/my.cnf midlertidigt for at løse problemet:

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

Desuden fandt jeg ikke, hvordan man indstillede det på en bestemt database eller en tabel og endda muligheden😅

Jeg genstartede mysqld på serveren og prøvede opdateringsprogrammet på websiden igen. Det var trods alt fuldstændig vellykket.

Jeg satte pris på MariaDB-dokumentationen og adskillige indlæg såsom Github-problemer og blogs. De hjalp mig meget.


  1. PostgreSQL-agent i SQL Standard Committee igen

  2. bruger postgres lancerer proces, der tager alle CPU'er 100% brug

  3. Hvad er STATISTICS PROFIL i SQL Server?

  4. Hvordan kontrollerer man SQL Server-databasekompatibilitet efter sp_dbcmptlevel er forældet?