Unele Conținut Sistemele de management, cum ar fi Typo, Contao, Contenido sau alte sisteme, au probleme cu sistemul din MySQL 5.1 Modul Strict disponibil. Aceasta a fost activă ca setare implicită începând cu versiunea 5.7.
Pentru a putea utiliza și aceste sisteme CMS, există încă posibilitatea de a dezactiva modul strict pe partea serverului. Bineînțeles, acest lucru este recomandat doar în anumite condiții.
Ce face modul Strict?
Modul strict al MySQL/MariaDB controlează modul în care sunt tratate valorile invalide sau lipsă în interogările de modificare a datelor, inclusiv în declarațiile INSERT, UPDATE și CREATE.
În acest fel, se poate constata că nu sunt valabile sau lipsesc Date conduc la avertismente sau erori atunci când se face interogarea SQL. În cazul în care modul strict este dezactivat, interogările invalide sau valorile lipsă sunt ajustate și se emite un simplu avertisment. Acest lucru poate duce la rezultate neașteptate.
Un exemplu ar fi o limită de caractere. Cu modul strict dezactivat, caracterele în exces vor fi trunchiate pentru a se potrivi.
De ce se întâmplă acest lucru doar cu unele sisteme CMS?
Nu putem decât să speculăm. Probabil codul este atât de extins încât nimeni nu poate vedea prin el. Pe de o parte sistem de gestionare a conținutului lucrează o mulțime de oameni, uneori aduc funcții individuale care apoi nu mai sunt privite ani de zile. Atâta timp cât nu apar probleme grave, nu este atât de rău.
În cazul unui sistem afectat în mod similar, cum ar fi whmcs, lucrurile arată deja diferit. În cazul în care datele importante sunt tăiate, acest lucru duce la alocări incorecte. Acest lucru poate deveni apoi problematic în cazul facturării.
Unde poate fi aplicat acest ghid?
Instrucțiunile se referă la sistemele Linux cu MySQL 5.6/5.7 sau MariaDB 10.1 și superioare cu modul Strict activ.
Pentru a efectua modificările este necesar accesul root. Instrucțiunile noastre se referă întotdeauna la Centos Linux. În cazul altor distribuții, fișierele de configurare pot fi localizate în alte directoare.
Pasul 1: Creați copii de rezervă
Atunci când editați fișiere, trebuie să faceți întotdeauna o copie de rezervă. Este mult prea ușor să ștergi ceva fără să vrei.
cp -a /etc/my.cnf{,.strict.bak}
Comanda creează un fișier my.cnf.strict.bak din my.cnf în același director.
Pasul 2: Dezactivați MySQL Strict Mode
În mod normal, nu există sql_mode=... în fișier, astfel încât următoarea linie ar trebui să fie adăugată în secțiune [mysqld] :
sql_mode=""
Pasul 3: Reporniți serviciul MySQL
După editarea fișierului, serviciul trebuie repornit pentru a aplica modificările.
systemctl restart mariadb
După ce serviciul a fost repornit, puteți verifica setările executând următoarea comandă. Aici, ca exemplu, cu parola de pe un Server Plesk. Alternativ cu root și parola.
mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "SELECT @@sql_mode;"
Ar trebui să apară următoarea declarație:
+————+
| @@sql_mode |
+————+
| |
+————+