Page 1 of 1

Unknown system variable 'storage_engine' .... thrown in ... mysqli.inc.php

Posted: Mon Sep 11, 2023 2:26 pm
by widdi
Hallo Zusammen, (serendipity 2.4.0 PHP 8.2.1 )

ich habe derzeit wenig Zeit für den Blog und liess ihn "stehen". Jetzt wollte ich was nachsehen und zitieren. Und er startet nicht (nur die Anmeldeseite admin kommt noch - anmelden geht auch nicht)

STRATO äußert sich nicht - hat aber auf der Supportseite eine Meldung dass "verschiedene Shops Probleme haben, wir arbeiten dran". Das hilft mir jetzt nicht. im Logfile fand ich eine Meldung, dass die Verbindung zu mysql nicht in Ordnung sei.

Einmal googeln erbrachte den Hinweis, dass bei "Confluence" diese Meldung bedeutet, dass mysql zu aktuell sei für den Betrieb mit Confluence.

Daher bin ich mir nicht sicher. Wenn ich bei STRATO nachsehe steht da der Typ "Mysql 5.7".

Daher meine Frage an euch: kann ich da was fixen... oder hat das tatsächlich Stato verbockt und ich muss warten, bis sie ne Lösung haben. Danke
11.09.2023 14:08:18 <Adresse> [client <IP>] PHP Fatal error: Uncaught mysqli_sql_exception: Unknown system variable 'storage_engine' in /<Pfad>/serendipity_blog/include/db/mysqli.inc.php:68
11.09.2023 14:08:18 <Adresse> [client <IP>] Stack trace:
11.09.2023 14:08:18 <Adresse> [client <IP>] #0 /<Pfad>/serendipity_blog/include/db/mysqli.inc.php(68): mysqli_query()
11.09.2023 14:08:18 <Adresse> [client <IP>] #1 /<Pfad>/serendipity_blog/include/db/mysqli.inc.php(300): serendipity_db_query()
11.09.2023 14:08:18 <Adresse> [client <IP>] #2 /<Pfad>/serendipity_blog/plugins/serendipity_event_categorytemplates/serendipity_event_categorytemplates.php(171): serendipity_db_schema_import()
11.09.2023 14:08:18 <Adresse> [client <IP>] #3 /<Pfad>/serendipity_blog/plugins/serendipity_event_categorytemplates/serendipity_event_categorytemplates.php(485): serendipity_event_categorytemplates->checkScheme()
11.09.2023 14:08:18 <Adresse> [client <IP>] #4 /<Pfad>/serendipity_blog/include/plugin_api.inc.php(1188): serendipity_event_categorytemplates->event_hook()
11.09.2023 14:08:18 <Adresse> [client <IP>] #5 /<Pfad>/serendipity_blog/include/genpage.inc.php(26): serendipity_plugin_api::hook_event()
11.09.2023 14:08:18 <Adresse> [client <IP>] #6 /<Pfad>/serendipity_blog/include/functions_routing.inc.php(18): include('...')
11.09.2023 14:08:18 <Adresse> [client <IP>] #7 /<Pfad>/serendipity_blog/index.php(104): serveIndex()
11.09.2023 14:08:18 <Adresse> [client <IP>] #8 {main}
11.09.2023 14:08:18 <Adresse> [client <IP>] thrown in /<Pfad>/serendipity_blog/include/db/mysqli.inc.php on line 68

Re: Unknown system variable 'storage_engine' .... thrown in ... mysqli.inc.php

Posted: Mon Sep 11, 2023 4:17 pm
by widdi
soweit ich das jetzt verstehe, wurde diese Variable entfernt.. eben bei mysql 5.7. Also habe ich wohl den Effekt, dass Strato die Datenbank aktualisiert hat.

Wie soll ich den Code in dieser Datei jetzt anpassen.. seufz

Zeile 294 in der mysqli_inc.php
if (serendipity_utf8mb4_ready()) {
# InnoDB enables us to use utf8mb4 with the higher max index size
serendipity_db_query("SET storage_engine=INNODB");
} else {
# Before 5.6.4/10.0.5 InnoDB did not support fulltext indexes, which we use,
# thus we stay with MyISAM here
serendipity_db_query("SET storage_engine=MYISAM");
}

Re: Unknown system variable 'storage_engine' .... thrown in ... mysqli.inc.php

Posted: Mon Sep 11, 2023 4:32 pm
by widdi
erster Hinweis
https://confluence.atlassian.com/confkb ... 90576.html

Doku
https://docs.oracle.com/cd/E17952_01/my ... gines.html

Da InnoDB jetzt "Default" ist, habe ich die beiden Befehle einfach auskommentiert...

geht wieder

Re: Unknown system variable 'storage_engine' .... thrown in ... mysqli.inc.php

Posted: Tue Sep 12, 2023 2:10 pm
by erAck
Echt, Strato setzt immer noch auf MySQL 5.7? Wenn angeboten, empfiehlt sich längerfristig ein Umstieg auf MariaDB 10.x (10.5, 10.11, ...); ob und welche Inkompatibilitäten für dich (nicht nur in Bezug auf s9y) relevant sind könntest du hier nachsehen:
https://mariadb.com/kb/en/mariadb-vs-my ... atibility/
https://mariadb.com/kb/en/compatibility-differences/

Das würde dann auch wieder die storage_engine Variable kennen, obwohl auch seit MariaDB 5.5 deprecated (stattdessen default_storage_engine mit default InnoDB, siehe https://mariadb.com/kb/en/server-system ... age_engine ).

S9y läuft hier mit MariaDB 10.11 problemlos.

Re: Unknown system variable 'storage_engine' .... thrown in ... mysqli.inc.php

Posted: Tue Sep 12, 2023 5:14 pm
by onli
Welchen Patch würdet ihr hier empfehlen? Prüfen, dass es wirklich MySQL und nicht MariaDB ist, dann bei >= 5.7 auf das Setzen der Engine verzichten?

Re: Unknown system variable 'storage_engine' .... thrown in ... mysqli.inc.php

Posted: Tue Sep 12, 2023 9:03 pm
by erAck
Klingt gut; und später bei MariaDB >=5.5 evtl. stattdessen die default_storage_engine setzen, falls deprecated auch mal irgendwann entfernt bedeuten sollte.. (obwohl ich mir gut vorstellen kann, dass MariaDB das aus Kompatibilitätsgründen so lange wie möglich unterstützt).

Re: Unknown system variable 'storage_engine' .... thrown in ... mysqli.inc.php

Posted: Wed Sep 13, 2023 3:54 pm
by onli
@widdi: Könntest du uns einnen Patch testen?

In der include/db/mysqli.inc.php steht ab Zeile 294 derzeit folgender Code:

Code: Select all

if (serendipity_utf8mb4_ready()) {
    # InnoDB enables us to use utf8mb4 with the higher max index size
    serendipity_db_query("SET storage_engine=INNODB");
} else {
    # Before 5.6.4/10.0.5 InnoDB did not support fulltext indexes, which we use,
    # thus we stay with MyISAM here
    serendipity_db_query("SET storage_engine=MYISAM");
}
Ersetze ihn bitte hiermit:

Code: Select all

$mysql_version = mysqli_get_server_info($serendipity['dbConn']);
if (serendipity_is_maria() || version_compare($mysql_version, '5.7', '<')) {
    # MySQL has dropped the storage_engine setting in 5.7, so we only need to set it in MariaDB or earlier MySQL version
    if (serendipity_utf8mb4_ready()) {
        # InnoDB enables us to use utf8mb4 with the higher max index size
        serendipity_db_query("SET storage_engine=INNODB");
    } else {
        # Before 5.6.4/10.0.5 InnoDB did not support fulltext indexes, which we use,
        # thus we stay with MyISAM here
        serendipity_db_query("SET storage_engine=MYISAM");
    }
}
Füge außerdem in der Datei außerhalb einer Funktion, z.B. ganz ans Ende, diesen Code hinzu:

Code: Select all

// Return true if database is MariaDB, false if it is MySQL
function serendipity_is_maria() {
    global $serendipity;
    
    $mysql_version = mysqli_get_server_info($serendipity['dbConn']);
    if (strpos($mysql_version, 'MariaDB') !== false) {
        return true;
    }
    return false;
}
Wenn das funktioniert sollte dein Blog sowohl mit mySQL 5.6 als auch mit 5.7 funktionieren, bzw. alternativ my MariaDB.

erAck, du könntest das gleiche vielleicht unter MariaDB gegentesten?

Re: Unknown system variable 'storage_engine' .... thrown in ... mysqli.inc.php

Posted: Wed Sep 20, 2023 6:14 pm
by onli
Wie siehts aus? Sonst würde ich die neue Beta erstmal ohne diesen Patch vorbereiten.

Re: Unknown system variable 'storage_engine' .... thrown in ... mysqli.inc.php

Posted: Mon Oct 02, 2023 8:59 pm
by MarioH
Hi, meine Datenbanken bei Ionos laufen auch noch unter MySQL 5.7. Ich habe den Patch getestet, funktioniert.

Re: Unknown system variable 'storage_engine' .... thrown in ... mysqli.inc.php

Posted: Tue Oct 03, 2023 11:51 am
by erAck
Hups, übersehen, dass hier auch was an mich gerichtet war. Ich kann mit dem change erstmal nichts nachteiliges feststellen.