Durante la migrazione di un sito Web client da un WHM/cPanel a un altro WHM/cPanel, ho ricevuto un errore SQL "Incompatibile con sql_mode=only_full_group_by “. Di seguito è riportato il messaggio di errore completo.
SELECT list is not in GROUP BY clause and contains nonaggregated column 'dbname.p.picfile' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Soluzione: MySQL 5.7.5+ ha cambiato GROUP BY comportamento conforme a SQL99 (le versioni precedenti non lo erano) e questo era il motivo dell'errore.
La soluzione alternativa è modificare le tue configurazioni MySQL per rimuovere ONLY_FULL_GROUP_BY opzione da sql_mode . Questo cambierà GROUP BY comportamento al suo comportamento precedente a MySQL 5.7.5.
Se sei su un hosting condiviso, non sarai in grado di modificare sql_mode a livello ambientale.
Rimuovi ONLY_FULL_GROUP_BY in my.cnf file
Se hai accesso al file di configurazione MySQL my.cnf , apri il file:
# vim /etc/mysql/my.cnf
e aggiungi la riga sottostante alla fine del file:
[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" Riavvia il servizio MySQL:
# systemctrl restart mysqlDisattiva ONLY_FULL_GROUP BY
Questo disabiliterà ONLY_FULL_GROUP_BY per TUTTI gli utenti del sistema.
Rimuovi ONLY_FULL_GROUP_BY in WHM/cPanel
Se il tuo dominio è su un cPanel (Hosting condiviso), devi contattare il tuo provider di hosting per aggiornarlo.
Se hai accesso a WHM, accedi a PHPMyAdmin in SQL Services da WHM come mostrato di seguito:
Fare clic su Variables dal menu e cerca SQL_MODE
Fai clic sul pulsante Modifica e cambia rimuovi ONLY_FULL_GROUP_BY . Una volta modificato, fai clic su save .
Ecco fatto!