sql >> Database teknologi >  >> RDS >> Mysql

SQLSTATE[42000]:Syntaksfejl eller adgangsovertrædelse:1055 Udtryk #3 af SELECT-listen er ikke i GROUP BY-sætning og indeholder ikke-aggregeret

Kør:

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

(Så kan du eventuelt kopiere outputtet til dine noter et sted, hvis du vil vende tilbage til de originale indstillinger senere.)

Og ændre SQL-tilstanden for din MySQL-serverinstans:

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

(Hvis du nogensinde vil rulle tilbage, kan du køre noget som mysql> SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE'_SUBSTI> ved hjælp af den værdi, du har gemt.)

En mere permanent måde (som vil overleve genstart af MySQL) ville være at bruge MySQL-konfigurationerne. Gå til /etc/mysql/my.cnf (eller du skal muligvis køre sudo vim /etc/mysql/mysql.conf.d/mysql.cnf ):

  • Tilføj en sektion for[mysqld] og lige under det tilføjer sætningensql_mode ="" eller noget som sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" .

  • Genstart MySQL-tjenesten:

     sudo systemctl restart mysql
    

(eller sudo service mysql genstart )

Se også https://dba.stackexchange.com/a/113153/18098



  1. Top PG Clustering High Availability Solutions til PostgreSQL

  2. Nulstil AutoIncrement i SQL Server efter sletning

  3. Mislykket bygningshjul til psychopg2 - MacOSX ved hjælp af virtualenv og pip

  4. SQL Server:Forespørgsel hurtig, men langsom fra procedure