Wat betreft het importeren van MySQL-gegevens, moet u rekening houden met drie (3) dingen.
MijnISAM
Het importeren van een MyISAM-tabel is zo eenvoudig als het verplaatsen van drie bestanden met de extensies .frm
, .MYD
, en .MYI
bestanden voor de opgegeven tabel in een MySQL-map. Als de tabelnaam bijvoorbeeld mydata is, dan zijn de drie (3) bestanden
mydata.frm
mydata.MYD
mydata.MYI
Het volgende zou de nachtmerrie van nachtmerries kunnen zijn. Het importeren van InnoDB hangt volledig af van vele factoren die in een van de twee categorieën vallen:
InnoDB (innodb_file_per_table uitgeschakeld [standaard])
Alle InnoDB-gegevens en indexpagina's bevinden zich in /var/lib/mysql/ibdata1
. Dit bestand moet van uw bronmachine (Server-S) naar de doelmachine (Server-T) worden verplaatst en in hetzelfde absolute pad worden geplaatst. In feite is hier de schok:Server-S en Server-T moeten hetzelfde zijn. Met andere woorden, u kunt InnoDB .ibd
niet importeren en exporteren bestanden naar andere machines. Ze kunnen alleen worden geïmporteerd en geëxporteerd op dezelfde machine, de .ibd
is gemaakt op.
Je zou ook /var/ib/mysql/ib_logfile0 en /var/ib/mysql/ib_logfile1 van Server-S moeten verplaatsen en ze in hetzelfde absolute pad op Server-T moeten plaatsen.
Je moet er ook voor zorgen dat elke InnoDB-variabele die is ingesteld in /etc/my.cnf van Server-S moet worden ingesteld in /etc/my.cnf op Server-T.
InnoDB (innodb_file_per_table ingeschakeld)
Voor elke InnoDB-tabel zijn er twee bestanden. Als de InnoDB-tabel in de mydata-database bijvoorbeeld mytable wordt genoemd, hebt u /var/lib/mysql/mydata/mytable.frm
en /var/lib/mysql/mydata/mytable.ibd. De .ibd
bestand bevat gegevens en indexpagina's voor de tabel. Om de individuele tabel te importeren moet je
- Plaats de
mytable.frm
in de map/var/lib/mysql/mydata folder
op Server-T - Plaats de
mytable.ibd
in de map/var/lib/mysql/mydata folder
op Server-T - Voer
ALTER TABLE mydata.mytable IMPORT TABLESPACE;
Zorg ervoor dat u de /var/lib/mysql/ibdata1
op dezelfde plaats waaruit het is geïmporteerd.
Moraal van het verhaal
Gebruik IMPORT TABLESPACE-technieken niet op verschillende servers. Doe gewoon een mysqldump van alles en importeer de mysqldump. Logische stortplaatsen zijn altijd de veiligste manier om te gaan !!!