Enkele Inhoud Managementsystemen zoals Typo, Contao, Contenido of andere systemen hebben problemen met de sinds MySQL 5.1 beschikbare Strikte modus. Dit is de standaardinstelling sinds versie 5.7.
Zodat men ook gebruik kan maken van deze CMS systemen is er nog steeds de mogelijkheid om de strikte modus aan de serverkant uit te schakelen. Dit is natuurlijk alleen aan te bevelen onder voorwaarden.
Wat doet de Strict-modus?
MySQL/MariaDB's strikte modus controleert hoe ongeldige of ontbrekende waarden worden behandeld in data change queries, inclusief INSERT, UPDATE en CREATE declaraties.
Ongeldig of vermist Gegevens leiden tot waarschuwingen of fouten wanneer de SQL-query wordt uitgevoerd. Als de Scrict-modus is uitgeschakeld, worden de ongeldige vragen of ontbrekende waarden aangepast en wordt er een eenvoudige waarschuwing gegeven. Dit kan tot onverwachte resultaten leiden.
Een voorbeeld hiervan is een karaktergrens. Als de modus Strict is uitgeschakeld, worden overtollige karakters afgesneden om deze te laten passen.
Waarom gebeurt dit alleen bij sommige CMS-systemen?
Men kan alleen maar speculeren. Waarschijnlijk is de code zo uitgebreid dat niemand er achter kan komen. Op een contentmanagementsysteem werken veel mensen, soms brengen ze individuele functies mee die dan jarenlang niet meer bekeken worden. Zolang er zich geen ernstige problemen voordoen is het niet zo erg.
Met een systeem als whmcs, dat ook wordt beïnvloed, is de situatie heel anders. Als belangrijke gegevens worden afgekapt, zal er sprake zijn van onjuiste toewijzingen. Dit kan problematisch zijn in het geval van een schikking.
Waar kunnen deze instructies worden toegepast?
De instructies verwijzen naar Linux-systemen met MySQL 5.6/5.7 of MariaDB 10.1 en hoger waar Strict Mode actief is.
Worteltoegang is nodig om de wijzigingen door te voeren. Onze instructies verwijzen altijd naar Centos Linux. Bij andere distributies kunnen de configuratiebestanden zich in andere mappen bevinden.
Stap 1: Maak back-ups
Bij het bewerken van bestanden moet u altijd een back-up maken. Het is veel te gemakkelijk om onbedoeld iets te verwijderen.
cp -a /etc/my.cnf{,.strict.bak}
Het commando maakt een my.cnf.strict.bak bestand aan van de my.cnf in dezelfde directory.
Stap 2: Schakel MySQL Strict Mode uit
Het bestand bevat normaal gesproken geen sql_mode=... dus de volgende regel moet worden toegevoegd aan de sectie [Mysqld] :
sql_mode=""
Stap 3: Start MySQL Service opnieuw op
Na het bewerken van het bestand moet de service opnieuw worden opgestart om de wijzigingen toe te passen.
systemctl herstart mariadb
Na het herstarten van de service kunt u de instelling controleren door het volgende commando uit te voeren. Hier als voorbeeld met het wachtwoord op een Plesk-server. Of met root en het wachtwoord.
mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "SELECT @@sql_modus;".
Dan moet de volgende teruggave verschijnen:
+————+
| @@sql_mode |
+————+
| |
+————+