• User Newbie

    Conversione Databease MyISAM in InnoDB

    Buonasera a tutti,
    dovrei convertire tutto il mio database da MyISAM in innoDB.
    Quello che posso aver trovato su internet sono due procedure, in PhpMyAdmin
    1 seleziono una tabella del database, vado in operazioni, e cambio il motore di memorizzazione da MyISAM in innoDB
    2 scrivo il SQL: ALTER TABLE nometabella ENGINE=InnoDB;

    Chiedo se questo è corretto o devo fare in maniera diersa?
    Bisogna ottimizzare anche database?
    Ho provato anche fareuna procedura da Terminale SSh ma mi da un errore di permessi password

    mysqlcheck: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect

    Ultima cosa la prima e seconda procedura è da fare una tabella alla volta, è possibile fare tutto il database in colp solo?

    Attualmente uso Plesk 12.5
    Centos 6.7
    Server database 5.5.4.4
    PhpMyAdmin 4.5.0.2

    Grazie


  • User Attivo

    Ciao bonny3 e benvenuto nel ForumGT!

    Se vuoi convertire le tabelle tutte insieme potresti scrivere un piccolo codice php come questo, che ho trovato su stackoverflow.

    
    
    <?php    //connect your database here first     //// Actual code starts here     $sql ="SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES        WHERE TABLE_SCHEMA = 'your_database_name'         AND ENGINE = 'MyISAM'";$rs = mysql_query($sql);while($row= mysql_fetch_array($rs)){$tbl =$row[0];$sql ="ALTER TABLE `$tbl` ENGINE=INNODB";        mysql_query($sql);}?>
    

    Mi raccomando backup prima, non si sa mai.


  • User Newbie

    @PietroR said:

    Ciao bonny3 e benvenuto nel ForumGT!

    Se vuoi convertire le tabelle tutte insieme potresti scrivere un piccolo codice php come questo, che ho trovato su stackoverflow.

    >
    
    <?php    //connect your database here first     //// Actual code starts here     $sql ="SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES        WHERE TABLE_SCHEMA = 'your_database_name'         AND ENGINE = 'MyISAM'";$rs = mysql_query($sql);while($row= mysql_fetch_array($rs)){$tbl =$row[0];$sql ="ALTER TABLE `$tbl` ENGINE=INNODB";        mysql_query($sql);}?>
    >```
    
    Mi raccomando backup prima, non si sa mai.
    
    Ciao Pietro,
    Grazie della risposta,
    ho procato a creare un file .php nel sito e lanciandolo non succede nulla e non cambia il database.
    Ovviamente nello spazio your_database_name ho messo il nome del mio database.
    Mi puoi aiutare?
    
    Saluti

  • User Attivo

    Ciao bonny3
    prima della query devi inserire anche i parametri per la connessione al database. Quella è solo la query di modifica


  • User Newbie

    @PietroR said:

    Ciao bonny3
    prima della query devi inserire anche i parametri per la connessione al database. Quella è solo la query di modifica

    Ciao PietroR,
    scusami ma non sono molto esperto, che parametri devo inserire di connessione e dove?
    Grazie

    Saluti