sql >> Database >  >> RDS >> Mysql

SQLSTATE[42000]:Syntaxisfout of toegangsfout:1055 Expressie #3 van de SELECT-lijst staat niet in de GROUP BY-clausule en bevat niet-geaggregeerde

Uitvoeren:

sudo mysql -u root -p
mysql> SELECT @@global.sql_mode;

(Kopieer de uitvoer vervolgens eventueel ergens naar uw notities voor het geval u later naar die oorspronkelijke instellingen wilt terugkeren.)

En wijzig de SQL-modus voor uw MySQL-serverinstantie:

mysql> SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

(Als je ooit iets terug wilt doen, kun je zoiets als mysql> SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZEROScode>TUTION_;

uitvoeren; met de waarde die je hebt opgeslagen.)

Een meer permanente manier (die het herstarten van MySQL zal overleven) zou het gebruik van de MySQL-configuraties zijn. Ga naar /etc/mysql/my.cnf (of misschien moet u sudo vim /etc/mysql/mysql.conf.d/mysql.cnf uitvoeren ):

  • Voeg een sectie toe voor[mysqld] en rechts eronder voeg je het statementsql_mode ="" . toe of iets als sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" .

  • Start de MySQL-service opnieuw:

     sudo systemctl restart mysql
    

(of sudo-service mysql opnieuw opstarten )

Zie ook https://dba.stackexchange.com/a/113153/18098



  1. Verschil tussen een normale ajax en lange polling

  2. Hoe vergrendel ik een InnoDB-rij die nog niet bestaat?

  3. mysqli of PDO - wat zijn de voor- en nadelen?

  4. MySQL en controlebeperkingen