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

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
widdi
Regular
Posts: 9
Joined: Sat Jul 16, 2022 11:49 pm

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

Post 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
widdi
Regular
Posts: 9
Joined: Sat Jul 16, 2022 11:49 pm

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

Post 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");
}
widdi
Regular
Posts: 9
Joined: Sat Jul 16, 2022 11:49 pm

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

Post 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
erAck
Regular
Posts: 236
Joined: Mon Feb 16, 2015 1:20 am

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

Post 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.
onli
Regular
Posts: 2830
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

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

Post 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?
erAck
Regular
Posts: 236
Joined: Mon Feb 16, 2015 1:20 am

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

Post 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).
onli
Regular
Posts: 2830
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

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

Post 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?
onli
Regular
Posts: 2830
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

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

Post by onli »

Wie siehts aus? Sonst würde ich die neue Beta erstmal ohne diesen Patch vorbereiten.
MarioH
Regular
Posts: 238
Joined: Mon Jul 20, 2009 10:53 pm
Contact:

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

Post by MarioH »

Hi, meine Datenbanken bei Ionos laufen auch noch unter MySQL 5.7. Ich habe den Patch getestet, funktioniert.
erAck
Regular
Posts: 236
Joined: Mon Feb 16, 2015 1:20 am

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

Post by erAck »

Hups, übersehen, dass hier auch was an mich gerichtet war. Ich kann mit dem change erstmal nichts nachteiliges feststellen.
Post Reply