Hogyan lehet letiltani a MySQL Strict Mode-ot

Néhány Tartalom A kezelőrendszerek, mint például a Typo, Contao, Contenido vagy más rendszerek problémái vannak a mivel MySQL 5.1 meglévő szigorú üzemmód. Az 5.7-es verzió óta ez az alapértelmezett beállítás.

Annak érdekében, hogy ezeket a CMS-rendszereket is használni lehessen, még mindig van lehetőség a szigorú üzemmód kikapcsolására a szerveroldalon. Természetesen ez csak feltételesen ajánlott.

Mit csinál a Szigorú mód?

A MySQL/MariaDB szigorú üzemmódja szabályozza az érvénytelen vagy hiányzó értékek kezelését az adatváltozási lekérdezésekben, beleértve az INSERT, UPDATE és CREATE deklarációkat.

Ily módon az érvénytelen vagy hiányzó Adatok figyelmeztetésekhez vagy hibákhoz vezetnek az SQL-lekérdezés során. Ha a scrict mód ki van kapcsolva, az érvénytelen lekérdezések vagy hiányzó értékek kiigazításra kerülnek, és egy egyszerű figyelmeztetés jelenik meg. Ez váratlan eredményekhez vezethet.

Ilyen például a karakterkorlátozás. Ha a szigorú mód ki van kapcsolva, a felesleges karaktereket le kell csonkolni, hogy a szöveg beleférjen.

Miért csak egyes CMS-rendszereknél fordul ez elő?

Csak találgatni lehet. Valószínűleg a kód annyira kiterjedt, hogy senki sem lát át rajta. Az egyik tartalomkezelő rendszer sokan dolgoznak, néha olyan egyedi funkciókat hoznak, amelyeket aztán évekig nem néznek meg. Amíg nem lépnek fel komolyabb problémák, addig nem is olyan rossz.

Egy hasonlóan érintett rendszerrel, mint a whmcs, ez már másképp néz ki. Ha fontos adatokat vágnak ki, az helytelen kiosztásokhoz vezet. Ez aztán problémás lehet a számlázás során.

Hol alkalmazható ez az útmutató?

Az utasítások a MySQL 5.6/5.7 vagy MySQL 5.6/5.7 Linux rendszerekre vonatkoznak. MariaDB 10.1 és magasabb, aktív Szigorú üzemmóddal.

A módosításokhoz root hozzáférés szükséges. Utasításaink mindig a következőkre vonatkoznak Centos Linux. Más disztribúciók esetében a konfigurációs fájlok más könyvtárakban is lehetnek.

1. lépés: Biztonsági mentések létrehozása

Fájlok szerkesztésekor mindig készítsen biztonsági másolatot. Túl könnyű valamit akaratlanul törölni.

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

A parancs létrehoz egy my.cnf.strict.bak fájlt a my.cnf fájlból ugyanabban a könyvtárban.

2. lépés: A MySQL szigorú módjának kikapcsolása

A fájlban általában nincs sql_mode=..., ezért a következő sort kell hozzáadni a szakaszhoz [mysqld] :

sql_mode=""

3. lépés: A MySQL szolgáltatás újraindítása

A fájl szerkesztése után a szolgáltatást újra kell indítani a módosítások alkalmazásához.

systemctl restart mariadb

A szolgáltatás újraindítása után a következő parancs végrehajtásával ellenőrizheti a beállítást. Itt egy példa a jelszóval egy Plesk kiszolgáló. Alternatívaként a root és a jelszó megadásával.

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

Ezután a következő visszatérésnek kell megjelennie:

+————+

| @@sql_mode |

+————+

| |

+————+

Aktuális cikkek