...

Wie man den MySQL Strict Mode deaktiviert

Einige Content Management Systeme wie Typo, Contao, Contenido oder andere Systeme haben Probleme mit dem seit MySQL 5.1 vorhandenen Strict Mode. Dieser ist seit der Version 5.7 als Standardeinstellung aktiv.

Damit man diese CMS Systeme auch verwenden kann besteht noch die Möglichkeit serverseitig den Strictmode abzuschalten. Zu empfehlen ist das natürlich nur bedingt.

Was macht der Strict mode?

Der Strict-Mode von MySQL/MariaDB kontrolliert, wie ungültige oder fehlende Werte in Datenänderungsabfragen behandelt werden, einschließlich INSERT-, UPDATE- und CREATE Deklarationen.

So können ungültige oder fehlende Daten zu Warnungen oder Fehlern führen wenn die SQL Abfrage erfolgt. Bei einem ausgeschalteten Scrict-Mode werden die ungültigen Abfragen oder fehlende Werte angepasst und eine einfache Warnung ausgegeben. Das kann zu unerwarteten Ergebnissen führen.

Ein Beispiel wäre eine Zeichenbegrenzung. Bei einem ausgeschalteten Strict-Mode werden überschüssige Zeichen dann abgeschnitten damit es passt.

Warum tritt das nur bei einigen CMS Systemen auf?

Da kann man nur spekulieren. Vermutlich ist der Code so umfangreich dass keiner mehr durchblickt. An einem Content Management System arbeiten sehr viele Leute, teilweise bringen sie einzelne Funktionen ein die dann jahrelang nicht mehr angeschaut werden. Solange keine gravierenden Probleme auftreten ist es auch nicht so schlimm.

Bei einem ebenfalls betroffenen System wie whmcs sieht es da schon anders aus. Wenn wichtige Daten abgeschnitten werden kommt es zu fehlerhaften Zuweisungen. Das kann im Abrechnungsfall dann problematisch werden.

Wo kann dieser Anleitung angewandt werden?

Die Anleitung bezieht sich auf Linux Systeme mit MySQL 5.6/5.7 oder MariaDB 10.1 und höher bei denen der Strict Mode aktiv ist.

Root Zugang ist erforderlich, um die Änderungen durchzuführen. Unsere Anleitungen beziehen sich immer auf Centos Linux. Bei anderen Distributionen können die Konfigurationsdateien in anderen Verzeichnissen liegen.

Schritt 1: Backups erstellen

Wenn man Dateien editiert, sollte man immer ein Backup anfertigen. Man kann viel zu schnell etwas unbeabsichtigt löschen.

cp -a /etc/my.cnf{,.strict.bak}

Der Befehl erstellt von der my.cnf eine my.cnf.strict.bak Datei im selben Verzeichnis.

Schritt 2: MySQL Strict Mode deaktivieren

In der Datei steht normalerweise kein sql_mode=… daher müsste folgende Zeile hinzugefügt werden im Abschnitt [mysqld] :

sql_mode=““

Schritt 3: MySQL Service neu starten

Nachdem nun die Datei editiert wurde muss der Dienst neu gestartet werden, um die Änderungen zu übernehmen.

systemctl restart mariadb

Nachdem der Dienst neu gestartet wurde kann man die Einstellung überprüfen in dem folgender Befehl ausgeführt wird. Hier als Beispiel mit dem Passwort auf einem Plesk Server. Alternativ mit root und dem Passwort.

mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e „SELECT @@sql_mode;“

Folgende Rückgabe sollte dann erscheinen:

+————+

| @@sql_mode |

+————+

|            |

+————+

Aktuelle Artikel

Allgemein

Webseite sicher gestalten: Das ist wichtig zu wissen

Bei der Webseitengestaltung stehen oftmals die Produktpräsentation oder die Navigation deutlich im Vordergrund. Häufig kommt die Sicherheit der eigenen Webseite jedoch viel zu kurz. Dabei

Allgemein

Aktuelle Trends im digitalen Marketing

Digitales Marketing hat in der heutigen Geschäftswelt eine enorme Bedeutung. Es ermöglicht Unternehmen, gezielt und effektiv mit ihrer Zielgruppe zu kommunizieren und dabei maßgeschneiderte Inhalte