Visualizzazione risultati 1 fino 22 di 22

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  connesso ora AlterGuru
    Data registrazione
    14-02-2015
    Messaggi
    1,220

    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 non  connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,935

    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
    13

    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 non  connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,935

    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
    13

    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 non  connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,935

    Predefinito

    Quale messaggio di errore appare?

    Ciao!

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

    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
    13

    Predefinito

    non possibile fare un downgrade alla versione precedente?

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

    Predefinito

    perch non ho la possibilit di modificare i parametri?

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

    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 non  connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,935

    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
    13

    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 non  connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,935

    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
    13

    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 non  connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,935

    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
    13

    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 non  connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,935

    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
    13

    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
    13

    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
    13

    Predefinito

    nessuno ha idea come risolvere il problema?

Regole di scrittura

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