sql >> Database >  >> RDS >> Mysql

Importeer .frm- en .opt-bestanden naar MySQL

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

  1. Plaats de mytable.frm in de map /var/lib/mysql/mydata folder op Server-T
  2. Plaats de mytable.ibd in de map /var/lib/mysql/mydata folder op Server-T
  3. 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 !!!



  1. Hoe werkt Subquery in select-instructie in Oracle?

  2. Automatisch e-mailsysteem om databaseoverzichtsrapport te verzenden

  3. Moet ik een bitveld indexeren in SQL Server?

  4. Tijdzoneconversie in SQL-query