Errore del Database (MySQL 5.7)

Aperto da BELFA, Giovedì - 01 Novembre 2018 - 12:04

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

BELFA

Buongiorno italiansmf.

Dopo emigrazione nuovo hosting cliccando su [Altre statistiche] mi si presenta questo errore. Grazie per l'attenzione.

Expression #2 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column '.................mr.date' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
File: /..../....../public_html/forum/Sources/Stats.php
Riga: 596

L'espressione n. 2 della clausola ORDER BY non è nella clausola GROUP BY e contiene la colonna non aggregata "....................mr.date" che non dipende in modo funzionale dalle colonne nella clausola GROUP BY; questo è incompatibile con sql_mode = only_full_group_by
File: /........./.........../public_html/forum/Sources/Stats.php
Riga: 596

emanuele

Direi che è cambiata la versione di mysql e i default sono diversi (che tecnicamente è una cosa buona perché finalmente mysql si è allineato con il resto dei db, ma per SMF è un po' meno bene, perché le query sono scritte un po' più rilassate facendo uso di qualche licenza poetica fino a poco tempo fa permessa da mysql).

Per evitare di avere l'errore, suggerisco di aggiungere una query tipo:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
presa da https://stackoverflow.com/questions/23921117/disable-only-full-group-by
in Load.php più o meno dopo:
// Most database systems have not set UTF-8 as their default input charset.
if (!empty($db_character_set))
$smcFunc['db_query']('set_character_set', '
SET NAMES ' . $db_character_set,
array(
)
);

in particolare prova aggiungendo questo:

$smcFunc['db_query']('', '
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,\'ONLY_FULL_GROUP_BY\',\'\'))',
array(
)
);

BELFA

#2
m da pagina bianca con scritta Hacking attempt...

Versione del server: 5.7.24 - MySQL che è quello che ho in uso, sono ignorante in materia non ci capisco molto. Penso che sia o sarà un problema di molti


emanuele

Prova:
$smcFunc['db_query']('', '
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,{string:mode_replace},{string:mode_replace_with}))',
array(
'mode_replace' => ONLY_FULL_GROUP_BY,
'mode_replace_with' => ''
)
);


e se quello non funziona prova:
$smcFunc['db_query']('', '
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,\'ONLY_FULL_GROUP_BY\',\'\'))',
array(
'security_override' => true
)
);


uno dei due dovrebbe funzionare... credo.

BELFA

#4
Emanuele ho risolto eliminando la parte "ONLY_FULL_GROUP_BY " da sqlmode ora funzia.

Rimane da risolvere il problema che si è presentato nel creare una nuova sezione :

Errore del Database
Field 'icon' doesn't have a default value
File: /..../....../public_html/forum/Sources/Subs-Boards.php
Riga: 797

Nota: Sembra che il tuo database debba essere aggiornato. I file del forum risultano attualmente alla versione SMF 2.0.15, mentre il database corrisponde alla versione 2.0.10. Il problema potrebbe essere risolto eseguendo l'ultima versione del file upgrade.php.




Mentre nel registro errori compare:

Applica filtro: Mostra solo i messaggi di errore di questo URL
https://www....../....../index.php?action=admin;area=manageboards;sa=board2
Applica filtro: Mostra solo gli errori con lo stesso messaggio
Errore del Database: Field 'icon' doesn't have a default value
Applica filtro: Mostra solo gli errori relativi a questo file
File: /......./......../public_html/forum/Sources/Subs-Boards.php
Riga: 797

BELFA

Ho risolto tutto, grazie per la collaborazione.

Flavio93Zena

Se risolvi scrivi sempre che hai fatto, nel caso l'errore si presenti ad altri utenti :) Specialmente in questo caso un po' particolare.

BELFA

Con MySQL  5.7.24 sia il CSS e alcune mod hanno dei problemi tipo quelli descritti, un inizio di partenza è il link segnalato da Emanuele https://stackoverflow.com/questions/23921117/disable-only-full-group-by

La soluzione è modificare le "Variabili" che presentano problemi in MySQL, per fare questo però devi avere dei permessi che di solito non hai, non ti rimane che chiedere al tuo Hosting supporto di farlo per te segnalando il tipo di errore e le correzioni da apportare.

La più diretta e sicura per correggere i problemi che si presentano con la 5.7.

BELFA

A titolo informativo se si presentano errori a me ha dato questi (topic log, nuove sezioni, Altre statistiche)

Dopo le modifiche apportate a MySQL 5.7 problemi risolti. In data 10.11.2018 i problemi si ripresentano e mi chiedo il perchè

Analizzando php MyAdmin Stato del server vedo che  "Questo server MySQL è in esecuzione da 1 giorno, 16 ore, 2 minuti e 12 secondi. Avviato il 10 novembre 2018 alle 5:51." e qui i problemi tornarono.

Riavviando il server i parametri predefiniti vengono riempostati per default vedi variabile sql mode "ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION". SMF 2.0.15 non digerisce la variabile in MySQL 5.7.

Con la versione 2.1 che è ancora in beta 3, il problema è assimilato e sarà compatibile con il 5.7 "Allineamento della modalità sql mysql per fornire lo stesso comportamento mysql tra le diverse versioni e usa il set predefinito mysql 5.7: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION " vedi qui: https://wiki.simplemachines.org/smf/Differences_between_SMF_2.1_and_SMF_2.0

Concludo che:

1) Al riavvio del server vengono impostati i parametri  di default azzerando le modifiche.
2) In attesa della versione 2.1 di smf si consiglia di usare MySQL 5.6 e tutti vissero felici e contenti.


BELFA

#9
Sempre in riferimento a MySQL 5.7

Disinstallando la mod Post rating pro http://www.simplemachines.org/community/index.php?topic=344748.msg3887773#msg3887773 ho risolto il problema della visualizzazione [Altre statistiche] che dava errore, ora si vede.

Disinstallata la mod topic view log http://custom.simplemachines.org/mods/index.php?mod=4060 non è compatibile e ti genera errore.

Mi rimane un unico problema che non riesco a capire dove intervenire e qui mi serve proprio un aiuto, l'errore viene generato in "modifica sezione>aggiungi sezione" mentre per "crea nuova categoria" non da errore e la crea.

Field 'icon' doesn't have a default value
File: /home../icv.../public_html/forum/Sources/Subs-Boards.php
Riga: 797



Elenco mod :




Dai Emanuele mi manca solo di risolvere questo errore "so che lo puoi fare"  :)
A parte le prime due citate che non sono indispensabili questa è una funzione di cui non si può farne a meno e ci teniamo il famigerato MySQL 5.7

Grazie sempre e comunque


emanuele

Devi andare in phpmyadmin, entrare nella tabella smf_boards (modalità "design" credo si chiami, comunque non devi vedere i dati, ma solo la struttura della tabella), individuare il campo "icon", modificarlo e impostare un "default" che per icon credo sia "xx"... penso.

BELFA

#11


Sistemato anche questo come da screen. Grazie Emanuele !

Discussioni simili (3)