Joomla.it Forum

Non solo Joomla... => Database => : Daniele Pinna 09 Apr 2016, 23:54:47

: Database InnoDB + MyISAM + MEMORY tutto insieme.
: Daniele Pinna 09 Apr 2016, 23:54:47
Salve a tutti :-)

Mi sono accorto che su almeno un paio di siti (ma temo che siano pių o meno tutti cosė) che il database č un po pasticciato.

Mi ritrovo infatti Tabelle che usano come motore InnoDB, altre MyISAM e altre 2 MEMORY.
Inoltre alcune usano la codifica utf8_general_ci mentre altre utf8mb4_unicode_ci.

Uno di questi siti č stato aggiornato alla 3.5.0 e poi alla 3.5.1, l'altro č fermo alla 3.4.8
Con quello aggiornato alla 3.5.1 su
   Estensioni -> Gestione -> Database

trovo 3 errori (probabilmente causati da quel pasticcio :-) ):
  •     La tabella 'idpj25_menu' non ha indice 'idx_client_id_parent_id_alias_language'. (Dal file 2.5.0-2011-12-24.sql.)
  •     La tabella 'idpj25_redirect_links' non ha indice 'idx_old_url'. (Dal file 3.5.0-2016-03-01.sql.)
  •     Le tabelle del database del core di Joomla! non sono ancora state convertite in UTF-8 Multibyte (utf8mb4).

E se tento di usare il pulsante "Correggi" dopo un po restituisce l'errore 500.

Ovviamente ho provato a correggere la situazione tramite phpMyAdmin... ma sulle tabelle che sono impostate come InnoDB mi segnala questo errore se faccio ripara tabella:

The storage engine for the table doesn't support r...

(il messaggio č troncato cosė come l'ho riportato.)

Ho trovato i comandi SQL per convertire da MyISAM a InnoDB (ma ancora non li ho applicati).
Le tabelle che sono impostate in "MEMORY" devo lasciarle cosė oppure converto anche quelle?

Ringrazio Anticipatamente per le Risposte :-)





: Re:Database InnoDB + MyISAM + MEMORY tutto insieme.
: Stefano Elix 20 Jul 2016, 16:32:55
Ciao
anche io ho lo stesso problema su un sito
e mentre su altro e stato automatico con il tasto correggi e tutto ok
hai una soluzione
anche operando direttamente sul db

Grazie
: Re:Database InnoDB + MyISAM + MEMORY tutto insieme.
: Daniele Pinna 20 Jul 2016, 18:36:34
Ciao...
Sono riuscito a risolvere sul mio server locale (Ubuntu Server 16.04 con PHP 7 e MySQL non.ricordo.la.versione :-D)


La procedura č semplice:
- esporti il database in un file .sql
- lo apri con un editor di testo (consiglio notepad++)
- modifichi tutte le ricorrenze di MyISAM con InnoDB e salvi il file, possibilmente con un nuovo nome, giusto per sicurezza.
- importi le tabelle in un nuovo DB (oppure elimini prime tutte le tabelle).

Ovviamente verifica che tutto vada bene...
Io dopo questa procedura non ho riscontrato problemi, fai comunque sapere se ha funzionanto e/o se hai riscontrato problemi.



: Re:Database InnoDB + MyISAM + MEMORY tutto insieme.
: Stefano Elix 21 Jul 2016, 01:01:32
Grazie per la risposta
il problema che riscontro e che mi sono accorto del problema dopo il passaggio dalla 3.4.8 alla 3.6.0

il problema che segnala e il seguente
:
  La tabella 'ry832_menu' non ha indice 'idx_client_id_parent_id_alias_language'. (Dal file 2.5.0-2011-12-24.sql.)La tabella 'ry832_redirect_links' non ha indice 'idx_old_url'. (Dal file 3.5.0-2016-03-01.sql.)Le tabelle del database del core di Joomla! non sono ancora state convertite in UTF-8 Multibyte (utf8mb4).  scarico tutto in locale e faccio delle prove dato che il sito e in produzione ed attualmente con db di 135 MB
sarebbe meglio una query diretta sul db ???
...................
Grazie