Datenbank im 'strict'-Modus

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Datenbank im 'strict'-Modus

Beitrag von Freddy » Fr 15. Nov 2019, 10:15

Hallo Zusammen,
habe gerade versucht eine Contenido-Installation 4.10.0 auf 4.10.1 upzudaten. Beim Update wird überprüft ob alle Vorraussetzungen erfüllt sind. Dort meckert das System, dass die Datenbank im 'strict'-Modus läuft und es geht nicht weiter. Daraufhin habe ich den Provider kontaktiert und er sagt, dass er den Strict-Modus nicht weg nehmen möchte aber man es per session deaktiviert kann, mit dem Befehl:

SET SESSION sql_mode = "NO_ENGINE_SUBSTITUTION";

Kann mir jemand sagen wo ich diesen Code einbauen kann oder ob es andere Lösungsansätze gibt.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Datenbank im 'strict'-Modus

Beitrag von xmurrix » Fr 15. Nov 2019, 10:51

Hallo Freddy,

probiere es mal mit folgender Einstellung in der "data/config/{ENVIRONMENT}/config.php":

Code: Alles auswählen

$cfg['db'] = array(
    'connection' => array(
        ...
        'options' => array(
            MYSQLI_INIT_COMMAND => "SET SESSION sql_mode='NO_ENGINE_SUBSTITUTION';"
        ),
        ...
    ),
);
Damit sollte der SQL Mode beim Erstellen der Datenbankverbindung gesetzt werden. Falls das nichts hilft, kannst du dir folgenden Kommentar im Forum dazu ansehen:
viewtopic.php?f=98&t=43357&p=179261&hil ... de#p179124

Allerdings befürchte ich, dass der SQL Mode "NO_ENGINE_SUBSTITUTION" für Probleme sorgen wird, besser wäre es, es nicht zu setzen, z. B. mit:

Code: Alles auswählen

...
            MYSQLI_INIT_COMMAND => "SET SESSION sql_mode='';"
...
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Datenbank im 'strict'-Modus

Beitrag von McHubi » Fr 15. Nov 2019, 12:03

Hallo Freddy,

wenn Du herausfinden möchtest, was überhaupt für den SQL-Mode festgelegt wurde, kannst Du das über phpMyAdmin nachschauen:
*phpMyAdmin öffnen
*DB auswählen
*Im Eingabefeld des Reiters "SQL" eintragen:
SHOW VARIABLES LIKE 'sql_mode';

Tipp: Lass Dir den ggf. gekürzten Eintrag unter "Value" vollständig anzeigen, indem Du die Optionen (direkt über der Tabelle eingebunden) entsprechend anpasst.

Wenn Du den Value dann ändern möchtest, geht das wieder über den SQL-Reiter indem Du im Eingabefeld
set global sql_mode='MEINGEWUENSCHTERINHALT';
einträgst und das dann ausführst.

Anmerkung:

Die hier geschilderten Vorgehensweisen funktionieren auch, wenn bei
SHOW VARIABLES LIKE 'sql_mode';
im Value
NO_ZERO_IN_DATE,NO_ZERO_DATE
steht.

Warum sind diese beiden Einträge problematisch? - Das Setup der 4.10 läuft damit zwar durch, aber am Ende kommt dann eine Fehlermeldung mit der Info man solle einen Blick in die setuplog.txt werfen. Dort gibt es dann einiges an "Unable to execute SQL statement", da bei der Installation einige "0000-00-00 00:00:00" und "0000-00-00" in die DB eingetragen werden, die aber durch "...ZERO..." verhindert werden.
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Antworten