Trasferire manualmente i database MySQL

Ho un disco rigido esterno che dispone di un clone non avviabile di una vecchia macchina (che non ho più). Una delle cose che erano presenti in quella macchina era un'installazione MySQL (v 5.5.19) con diversi database che vorrei salvare.

Ho scoperto e ho scoperto che esiste una directory di {root}/usr/local/mysql/data e che contiene sottodirectory che sembrano corrispondere ai database che vorrei salvare.

  • MySQL - Se lo slave non è in linea e torna in linea, prende automaticamente i dati dal master?
  • Il modo più semplice per sincronizzare due cartelle
  • Quanto spesso dovrebbe essere riavviato Apache e MySQL?
  • mysql 5.1 - innodb - query_cache_size - 9.418.108 query sono state rimosse dalla cache di query a causa della mancanza di memory
  • mysqldump non sta eliminando i miei dati
  • I file di dati binari raw di MySql copiano 5.0> 5.1
  • Ho copiato una di queste directory sulla mia macchina principale (anche in esecuzione MySQL 5.5.19) e ho ottenuto tutte le autorizzazioni di file e la properties; impostata correttamente ( _mysql:wheel , 0660 sui file .frm, ecc.).

    Quando accedo a PHPMyAdmin adesso, posso vedere il database elencato a sinistra, con il numero corretto di tabelle tra parentesi. Tuttavia, quando tento di connettersi a tale database, mi dice che non ci sono tabelle nel database.

    Ovviamente ho perso qualcosa. Che cosa ho perso, e c'è un altro modo per fare questo che potrebbe essere più facile? Potrei forse modificare la miriade di file cnf per indicare i file MySQL sul disco rigido esterno e quindi utilizzare mysqldump su questi? Quali file avrei bisogno di modificare?

    2 Solutions collect form web for “Trasferire manualmente i database MySQL”

    L'avevo capito!

    Per i posteri, ecco quello che ho fatto:

    1. Ho ucciso il server MySQL
    2. Ho copiato /usr/local/mysql/support-files/my-small.cnf su /etc/my.cnf
    3. Ho aperto my.cnf e ho aggiunto questa row nella sezione [mysqld] :

       # point the datadir to the old stuff on the external hard drive datadir = /Volumes/Clone/usr/local/mysql/data 
    4. Ho salvato e chiuso my.conf
    5. Ho riavviato il server MySQL. Il riquadro MySQL in Preferenze di Sistema aveva un avvertimento su come "/ Volumes / Clone / usr / local / mysql / data" non avevano la properties; corretta, ma ho capito che era OK ignorare. E 'stato anche rassicurante vedere che MySQL stava cercando il posto giusto per i dati.
    6. Ho aperto PHPMyAdmin e ho eseguito l'accesso.
    7. Ho esportto i database che mi interessava come file .sql.gz
    8. Ho ri-ucciso il server MySQL e /etc/my.cnf cancellato il file /etc/my.cnf
    9. Ho riavviato il server MySQL e ho eseguito l'accesso a PHPMyAdmin
    10. Ho importto i miei database e tutto sembra fantastico!

    La prima cosa che dovresti fare è questo:

     chown -R mysql:mysql /usr/local/mysql/data 

    Dovresti scoprire quanto grandi sono i file InnoDB

    • ibdata1
    • ib_logfile0
    • ib_logfile1

    Se ibdata1 è <20M e ib_logfile0 = 5M, allora mysql era in esecuzione senza un mio.cnf in atto. Dovresti essere in grado di avviare mysql. Se sono formati diversi, devi creare my.cnf con quanto segue

     [mysqld] innodb_log_file_size=???? (file of ib_logfile0 in M) 

    Spero che questo sia un buon inizio

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.