Per quanto riguarda l'importazione di dati MySQL, è necessario considerare tre(3) cose.
Il mioISAM
Importare una tabella MyISAM è semplice come spostare tre file con estensione .frm
, .MYD
e .MYI
file per la tabella data in una cartella MySQL. Ad esempio, se il nome della tabella è mydata, allora i tre(3) file
mydata.frm
mydata.MYD
mydata.MYI
Quello che segue potrebbe essere l'incubo degli incubi. L'importazione di InnoDB dipende interamente da molti fattori che rientrano in una delle due categorie:
InnoDB (innodb_file_per_table disabilitato [predefinito])
Tutti i dati e le pagine di indice di InnoDB si trovano in /var/lib/mysql/ibdata1
. Questo file deve essere spostato dalla macchina di origine (Server-S) alla macchina di destinazione (Server-T) e collocato nello stesso percorso assoluto. In effetti, ecco lo shock:Server-S e Server-T devono essere gli stessi. In altre parole, non puoi importare ed esportare InnoDB .ibd
file su altre macchine. Possono essere importati ed esportati solo sulla stessa macchina .ibd
è stato creato il.
Dovresti anche spostare /var/ib/mysql/ib_logfile0 e /var/ib/mysql/ib_logfile1 da Server-S e posizionarli nello stesso percorso assoluto su Server-T.
Devi anche assicurarti che ogni variabile InnoDB impostata in /etc/my.cnf da Server-S debba essere impostata in /etc/my.cnf su Server-T.
InnoDB (innodb_file_per_table abilitato)
Per ogni tabella InnoDB, ci saranno due file. Ad esempio, se la tabella InnoDB nel database mydata è chiamata mytable, avrai /var/lib/mysql/mydata/mytable.frm
e /var/lib/mysql/mydata/mytable.ibd. Il .ibd
contiene dati e pagine di indice per la tabella. Per importare la singola tabella devi
- Inserisci
mytable.frm
nella cartella/var/lib/mysql/mydata folder
su Server-T - Inserisci
mytable.ibd
nella cartella/var/lib/mysql/mydata folder
su Server-T - Esegui
ALTER TABLE mydata.mytable IMPORT TABLESPACE;
Assicurati di avere il /var/lib/mysql/ibdata1
nello stesso luogo da cui è stato importato.
Morale della favola
Si prega di non utilizzare le tecniche IMPORT TABLESPACE su server diversi. Basta fare un mysqldump di tutto e importare il mysqldump. I dump logici sono sempre la strada più sicura da percorrere!!!