Visualizzazione risultati 1 fino 27 di 27

Discussione: Problema sql_mode

  1. #1
    makemoneyforum non è connesso Utente AlterBlog
    Data registrazione
    13-03-2020
    Messaggi
    2

    Predefinito Problema sql_mode

    Errore Generale
    SQL ERROR [ mysqli ]

    Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'my_makemoneyforum.w.counter_user' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by [1055]

    SQL

    SELECT w.user_id, w.topic_id, w.counter_user, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total FROM avphpbb_whovisitedthistopic w, avphpbb_users u WHERE w.topic_id = 31 AND w.user_id = u.user_id GROUP BY w.user_id ORDER BY w.date DESC LIMIT 255

    BACKTRACE

    FILE: (not given by php)
    LINE: (not given by php)
    CALL: msg_handler()

    FILE: [ROOT]/phpbb/db/driver/driver.php
    LINE: 1023
    CALL: trigger_error()

    FILE: [ROOT]/phpbb/db/driver/mysqli.php
    LINE: 195
    CALL: phpbb\db\driver\driver->sql_error()

    FILE: [ROOT]/phpbb/db/driver/mysql_base.php
    LINE: 45
    CALL: phpbb\db\driver\mysqli->sql_query()

    FILE: [ROOT]/phpbb/db/driver/driver.php
    LINE: 296
    CALL: phpbb\db\driver\mysql_base->_sql_query_limit()

    FILE: [ROOT]/phpbb/db/driver/factory.php
    LINE: 337
    CALL: phpbb\db\driver\driver->sql_query_limit()

    FILE: [ROOT]/ext/dmzx/whovisitedthistopic/event/listener.php
    LINE: 189
    CALL: phpbb\db\driver\factory->sql_query_limit()

    FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
    LINE: 214
    CALL: dmzx\whovisitedthistopic\event\listener->viewtopic_get_post_data()

    FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
    LINE: 44
    CALL: Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()

    FILE: [ROOT]/phpbb/event/dispatcher.php
    LINE: 62
    CALL: Symfony\Component\EventDispatcher\EventDispatcher->dispatch()

    FILE: [ROOT]/phpbb/event/dispatcher.php
    LINE: 46
    CALL: phpbb\event\dispatcher->dispatch()

    FILE: [ROOT]/viewtopic.php
    LINE: 1321
    CALL: phpbb\event\dispatcher->trigger_event()

    questo è l'errore che mi appare ogni volta che tento di accedere ad un topic del mio forum dopo aver aggiornato il database a MySQL 8.0. Dovrei modificare la voce sql_mode nelle variabili ma non è possibile, mi spiegate come risolvere?

  2. #2
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,980

    Predefinito

    Salve,
    l'erore viene generato da sql_mode che in MySQL 8 è impostato come only_full_group_by da default. In MySQL 5.6 e versioni precedenti, sql_mode era impostato da default in modo meno restrittivo.

    Per risolvere il problema, dovrebbe bastare modifcare sql_mode in questo modo:
    Codice:
    sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
    Come riportato in mysql setting sql mode permanently e in molte altre discussioni, anche di altri forum, la scelta migliore che viene suggerita, è quella d'impostare la mogdifica di sql_mode nei file di configurazione del server.

    Cordiali saluti.

  3. #3
    makemoneyforum non è connesso Utente AlterBlog
    Data registrazione
    13-03-2020
    Messaggi
    2

    Predefinito

    Il punto è dove devo modificare sql_mode visto che non si può nelle variabili del localhost?

  4. #4
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,065

    Predefinito

    La scelta migliore è quella di scrivere del codice robusto, evitando quindi campi sql senza senso.

    Nel tuo caso, andrebbe rimosso dalla query il campo "my_makemoneyforum.w.counter_user". Il problema è spiegato ad esempio qui.

    Le soluzioni quindi sono:
    1 - correggere il codice
    2 - utilizzare un'estensione più recente

    Ciao!
    Ultima modifica di alemoppo : 08-11-2020 alle ore 17.17.06

  5. #5
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    Buonasera, io dovrei inserire questa stringa nel mysql, ma non so come fare.
    SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
    Da dove devo inserire questa stringa?
    Grazie

  6. #6
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,065

    Predefinito

    Non puoi eseguire quel comando.
    Come già spiegato precedentemente, la soluzione è utilizzare codici robusti, non abbassare i controlli durante l'esecuzione.

    Ciao!

  7. #7
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    ok ma allora come faccio a risolvere il problema del mysql, ho una stazione meteo che salva i dati, ma la parte rain non funziona a causa di quel comando che devo eseguire sul dbase.
    Come posso risolvere il problema?
    Non sono bravo con i comandi sql

    Valerio

  8. #8
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,065

    Predefinito

    Quale messaggio di errore appare?

    Ciao!

  9. #9
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    Errore

    Query SQL: Documentazione

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

    Messaggio di MySQL: Documentazione
    #1227 -

    non capisco come mai si è aggiornato alla versione 8, sull'altro sito che ho ancora la versione vecchia non mi da problemi
    Sulla versione 8:
    sql mode ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_ DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_EN GINE_SUBSTITUTION

    sulla versione 5.6
    sql mode STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
    Ultima modifica di carlinometeo : 17-11-2020 alle ore 21.13.08

  10. #10
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    non è possibile fare un downgrade alla versione precedente?

  11. #11
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    perchè non ho la possibilità di modificare i parametri?

  12. #12
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    è possibile parlare con la assistenza di altervista?
    o almeno con qualcuno che sabbia risolvere il problema?
    un disastro..i miei dati meteo non vengono memorizzati....mi avete cambiato dbase senza avvisare
    Ultima modifica di carlinometeo : 18-11-2020 alle ore 21.53.35

  13. #13
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,065

    Predefinito

    Non è possibile effettuare il downgrade. Probabilmente stai utilizzando un codice non aggiornato.

    Navigando nel tuo sito non ho trovato l'errore, in che pagina si trova?
    Puoi mostrare il codice PHP che esegue la query?

    Ciao!

  14. #14
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    non capisco il perchè mi hanno passato alla versione 8.
    il codice php non riesco a vederlo pure io perchè è un sito già preconfezionato,solo che tutti gli altri siti funziona a meraviglia.
    Adesso voglio capire se altervista mi da la possibilità di modificare il dbase, oppure addio altervista

  15. #15
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,065

    Predefinito

    Sei stato passato alla versione 8 perché la 5.6 è una versione mysql molto vecchia (del 2013 supportata fino febbraio 2021).

    La soluzione quindi è aggiornare il vecchio codice: puoi agire i codici dalla gestione files: http://it.altervista.org/cplogin.php?redirect=/lf.pl

    Posso provare a chiedere se possono passarti temporaneamente alla versione precedente, ma il codice andrebbe comunque aggiornato.

    Ciao!
    Ultima modifica di alemoppo : 19-11-2020 alle ore 14.31.34

  16. #16
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    magari, mi faresti un GROSSO favore
    Magari se riescono loro a cambiarmi le impostazioni sopracitare della stringa credo che poi il problema non si ripresenta
    Ultima modifica di carlinometeo : 19-11-2020 alle ore 16.43.54

  17. #17
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,065

    Predefinito

    La soluzione non è tornare indietro della versione mysql, ma come già detto di aggiornare i codici. Puoi mostrarli?

    Ciao!

  18. #18
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    parlando con il programmatore, il programma funziona benissimo anche con mysql versione 8, solo che devo impartire un comando che non essendo amministratore del mysql mi da errore.
    Allora se esiste un numero di assistenza da chiamare, il problema si risolve in 5 minuti.
    Oppure che mi diano la possibilità di essere amministratore del mio mysql.
    Non credo che sia così complicato...

  19. #19
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,065

    Predefinito

    Citazione Originalmente inviato da carlinometeo Visualizza messaggio
    Allora se esiste un numero di assistenza da chiamare, il problema si risolve in 5 minuti.
    Oppure che mi diano la possibilità di essere amministratore del mio mysql.
    Non credo che sia così complicato...
    Non è possibile tornare ad una versione più vecchia di Mysql, o meglio potrebbe essere una pezza temporanea ma in futuro il problema tornerebbe (non puoi rimanere a vita con mysql 5.6): Mysql 8 di default è più restrittivo, non permette l'esecuzione di codice e non è possibile cambiare questa impostazione perché cambierebbe anche a tutti gli altri siti ospitati nel tuo stesso server.

    Molto probabilmente è sufficiente rimuovere un campo(immagino inutilizzato) dalla query che legge i valori dal database.
    Come dicevo sopra, il "problema" è spiegato bene qui: https://www.percona.com/blog/2019/05...p_by-sql-mode/

    Ciao!

  20. #20
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    funziona anche con la nuova versione, solo se non sono amministratore non impartisce i comandi

  21. #21
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    almeno che fosse un numero da chiamare e che mi faccia parlare con l'amministratore del sql come si vede non posso modificare niente
    Ultima modifica di carlinometeo : 20-11-2020 alle ore 20.34.03

  22. #22
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    nessuno ha idea come risolvere il problema?

  23. #23
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,065

    Predefinito

    Quel comando modifica una impostazione di mysql, rendendolo meno restrittivo. Si tratta di una "pezza", andrebbero riviste le query modificando i valori in lettura.

    Ciao!

  24. #24
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    a me va bene così, basta riuscire ad impartire il comando, dato che non tutti montano la versione 8.
    Poi quando sarà penseremo a cambiare il codice, e poi non capisco il perchè non posso modificare i parametri di sql
    Ultima modifica di carlinometeo : 25-11-2020 alle ore 13.55.02

  25. #25
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,065

    Predefinito

    Citazione Originalmente inviato da carlinometeo Visualizza messaggio
    e poi non capisco il perchè non posso modificare i parametri di sql
    Ti avevo già risposto:
    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    e non è possibile cambiare questa impostazione perché cambierebbe anche a tutti gli altri siti ospitati nel tuo stesso server.
    Ciao!

  26. #26
    carlinometeo non è connesso Neofita
    Data registrazione
    14-12-2010
    Messaggi
    15

    Predefinito

    un numero dove chiamare?

  27. #27
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,065

    Predefinito

    Ti è stata inviata la soluzione.

    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •