Import .frm and .opt files to MySQL

前端 未结 4 793
-上瘾入骨i
-上瘾入骨i 2020-12-25 13:27

I am using MySQL 5.5.1.1 downloaded and installed from : http://dev.mysql.com/downloads/

I want to import .frm and .opt database files from my local machine to my my

4条回答
  •  一个人的身影
    2020-12-25 14:20

    As far importing any MySQL data, three(3) things need to considered.

    MyISAM

    Importing a MyISAM table is a simple as moving three files with the extensions .frm, .MYD, and .MYI files for the given table into a MySQL folder. For example, if the table name is mydata, then the three(3) files

    • mydata.frm
    • mydata.MYD
    • mydata.MYI

    The following could be the nightmare of nightmares. Importing InnoDB depends entirely on many factors that fall into one of two categories:

    InnoDB (innodb_file_per_table disabled [default])

    All InnoDB data and index pages are located in /var/lib/mysql/ibdata1. This file must be moved from your source machine (Server-S) to the target machine (Server-T) and placed in the same absolute path. In fact, here is the shocker: Server-S and Server-T must be the same. In other words, you cannot import and export InnoDB .ibd files to other machines. They can only be imported and exported on the same machine the .ibd was created on.

    You would also have to move /var/ib/mysql/ib_logfile0 and /var/ib/mysql/ib_logfile1 from Server-S and place them in the same absolute path on Server-T.

    You also must make sure that every InnoDB variable set in /etc/my.cnf from Server-S must be set in /etc/my.cnf on Server-T.

    InnoDB (innodb_file_per_table enabled)

    For every InnoDB table, there will be two files. For example, if the InnoDB table in the mydata database is called mytable, you will have /var/lib/mysql/mydata/mytable.frm and /var/lib/mysql/mydata/mytable.ibd. The .ibd file contains data and index pages for the table. To import the individual table you must

    1. Place the mytable.frm in /var/lib/mysql/mydata folder on Server-T
    2. Place the mytable.ibd in /var/lib/mysql/mydata folder on Server-T
    3. Run ALTER TABLE mydata.mytable IMPORT TABLESPACE;

    Make sure you have the /var/lib/mysql/ibdata1 in the same place it was imported from.

    Moral of the story

    Please do not use IMPORT TABLESPACE techniques across different servers. Just do a mysqldump of everything and import the mysqldump. Logical dumps are always the safest way to go !!!

提交回复
热议问题