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.

  • Imansible avviare / interrompere il servizio mysql
  • Il server slave MySQL non rimuove i vecchi binlog relay
  • MySQL: come convertire molte tabelle MyISAM in InnoDB in un database di produzione?
  • opzione rsync --iconv su Mac non funzionante (sincronizzazione da server Linux remoto a Mac locale)
  • Come specificare la directory di destinazione in Postfix con MySQL?
  • Licenza MySQL - è MySQL Free?
  • 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.