sql >> Database >  >> RDS >> Mysql

Hoe de strikte SQL-modus in MySQL 5.7 uit te schakelen

Als uw app is geschreven voor oudere versies van MySQL en niet compatibel is met de strikte SQL-modus in MySQL 5.7, kunt u de strikte SQL-modus uitschakelen. Apps zoals WHMCS 6 en Craft 2 ondersteunen bijvoorbeeld geen strikte SQL-modus.

Als je WHMCS 7 gebruikt, bekijk dan ons artikel over het aanpassen van MySQL voor WHMCS 7.

Om de strikte SQL-modus uit te schakelen, SSH in naar uw server als root en maak een nieuw configuratiebestand aan met nano of de editor van uw keuze:

sudo nano /etc/mysql/conf.d/disable_strict_mode.cnf

Voer in het bestand deze twee regels in:

[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Sla het bestand op door op CTRL + X . te drukken , dan j , dan ENTER om wijzigingen te bevestigen.

Start tot slot MySQL opnieuw met dit commando:

sudo service mysql restart

Deze wijziging schakelt twee instellingen voor de SQL-modus uit, STRICT_TRANS_TABLES en ONLY_FULL_GROUP_BY, die zijn toegevoegd in MySQL 5.7 en die problemen veroorzaken voor sommige oudere toepassingen.

Bevestigen dat de strikte SQL-modus is uitgeschakeld

U kunt bevestigen dat de strikte SQL-modus is uitgeschakeld door deze opdracht uit te voeren als root :

sudo mysql -i -BN -e 'SELECT @@sql_mode' | grep -E 'ONLY_FULL_GROUP_BY|STRICT_TRANS_TABLES'

Als de strikte modus is uitgeschakeld, ziet u geen uitvoer van die opdracht.

Als het uitschakelen van de strikte modus problemen voor je oplevert, kun je het opnieuw inschakelen door dat bestand te verwijderen en MySQL opnieuw te starten.

Hoe zien strikte fouten in de SQL-modus eruit

Als uw app niet compatibel is met de strikte SQL-modus, ziet u vaak SQL-fouten zoals:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of
SELECT list is not in GROUP BY clause and contains nonaggregated column
'yourdbname.tblannouncements.date' which is not functionally dependent on
columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

  1. SQL SERVER - Truc - SSMS uitvoeren met een ander Windows-account

  2. SQLiteDatabase android IllegalStateException

  3. Wat is er nieuw in MariaDB MaxScale 2.4

  4. 3 manieren om de sortering voor uw verbinding in MariaDB te tonen