Mõned Sisu Haldussüsteemidel nagu Typo, Contao, Contenido või muudel süsteemidel on probleeme, kuna MySQL 5.1 olemasolev range režiim. See on aktiivne vaikimisi seade alates versioonist 5.7.
Selleks, et saaks kasutada ka neid CMS-süsteeme, on endiselt võimalus serveri poolel ranget režiimi välja lülitada. Loomulikult on see ainult tinglikult soovitatav.
Mida teeb režiim Strict?
MySQL/MariaDB range režiim kontrollib, kuidas andmete muutmise päringutes, sealhulgas INSERT-, UPDATE- ja CREATE-deklaratsioonides, käsitletakse kehtetuid või puuduvaid väärtusi.
Sel viisil on kehtetu või puuduv Andmed põhjustada hoiatusi või vigu SQL päringu tegemisel. Kui scrict-režiim on välja lülitatud, kohandatakse kehtetuid päringuid või puuduvaid väärtusi ja väljastatakse lihtne hoiatus. See võib viia ootamatute tulemusteni.
Näiteks võib tuua tähemärkide piirangu. Kui range režiim on välja lülitatud, kärbitakse üleliigsed tähemärgid, et see sobiks.
Miks esineb see ainult mõne CMS-süsteemi puhul?
Võib ainult spekuleerida. Tõenäoliselt on kood nii ulatuslik, et keegi ei näe sellest läbi. Ühel sisuhaldussüsteem töötavad palju inimesi, mõnikord toovad nad üksikuid funktsioone, mida siis enam aastaid ei vaadata. Niikaua kui ei teki tõsiseid probleeme, ei ole see nii halb.
Samamoodi mõjutatud süsteemiga nagu whmcs näeb see juba teisiti välja. Kui olulised andmed on ära lõigatud, toob see kaasa ebaõige jaotuse. See võib siis muutuda problemaatiliseks arveldamise puhul.
Kus saab seda juhendit rakendada?
Juhised viitavad Linuxi süsteemidele, millel on MySQL 5.6/5.7 või MariaDB 10.1 ja kõrgemad, kui aktiivne rangem režiim on aktiivne.
Muudatuste tegemiseks on vaja juurkasutusõigust. Meie juhised viitavad alati Centos Linux. Teiste distributsioonide puhul võivad konfiguratsioonifailid asuda teistes kataloogides.
Samm 1: Loo varukoopiaid
Failide redigeerimisel peaksite alati tegema varukoopia. Liiga lihtne on midagi tahtmatult kustutada.
cp -a /etc/my.cnf{,.strict.bak}
Käsk loob faili my.cnf.strict.bak faili my.cnf samasse kataloogi.
Samm 2: Lülita MySQLi range režiim välja
Tavaliselt ei ole failis sql_mode=..., seega tuleb lõikesse lisada järgmine rida [mysqld] :
sql_mode=""
3. samm: MySQL teenuse taaskäivitamine
Pärast faili redigeerimist tuleb teenus muudatuste rakendamiseks uuesti käivitada.
systemctl restart mariadb
Pärast teenuse taaskäivitamist saate seadistust kontrollida järgmise käsu abil. Siin näitena parooliga kohta Plesk Server. Teise võimalusena root ja parool.
mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "SELECT @@sql_mode;"
Seejärel peaks ilmuma järgmine tagastus:
+————+
| @@sql_mode |
+————+
| |
+————+