2011-04-21 40 views
18

estoy usando MySQL 5.5.1.1 descargado e instalado desde: http://dev.mysql.com/downloads/importación y archivos .opt a MySQL

quiero importar .frm y archivos de base de .opt de mi máquina local a mi base de datos MySQL.

Creé una nueva conexión de base de datos para ayudarme a importar los archivos de mi máquina. Pero no puedo importar archivos .frm ya que recibo un mensaje de error: Formato no admitido.

¿Alguien me puede ayudar a cómo puedo importar archivos al cliente de MySQL?

Gracias, J

+1

¿Puede por favor elaborar? El archivo .frm es solo un descriptor de estructura de la base de datos. opt es solo un archivo de opciones de base de datos global. No contienen datos. Y, por supuesto, no pueden importarse al cliente MySQL. Son para el servidor MySQL. –

Respuesta

26

importar lo que respecta datos MySQL, tres (3) cosas tienen que considerarse.

MyISAM

Importación de una tabla MyISAM es un sencillo como mover tres archivos con las extensiones .frm, .MYD, y .MYI archivos para la tabla dada en una carpeta de MySQL. Por ejemplo, si el nombre de la tabla es misdatos, a continuación, los tres (3) Archivos

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

los siguientes podría ser la pesadilla de las pesadillas. Importación de InnoDB depende enteramente de muchos factores que caen en una de dos categorías:

InnoDB (innodb_file_per_table discapacitados [por defecto])

Todos los datos de InnoDB y páginas de índice se encuentran en /var/lib/mysql/ibdata1. Este archivo debe moverse desde su máquina de origen (Server-S) a la máquina de destino (Server-T) y colocarse en la misma ruta absoluta. De hecho, aquí está la sorpresa: Server-S y Server-T deben ser lo mismo. En otras palabras, no puede importar y exportar archivos InnoDB .ibd a otras máquinas. Solo se pueden importar y exportar en la misma máquina en la que se creó .ibd.

También tendría que mover/var/ib/mysql/ib_logfile0 y/var/ib/mysql/ib_logfile1 desde Server-S y colocarlos en la misma ruta absoluta en Server-T.

También debe asegurarse de que cada variable InnoDB configurada en /etc/my.cnf del Servidor-S debe configurarse en /etc/my.cnf en Server-T.

InnoDB (innodb_file_per_table activado)

Por cada tabla InnoDB, habrá dos archivos. Por ejemplo, si la tabla InnoDB en la base de datos mydata se llama mytable, tendrá /var/lib/mysql/mydata/mytable.frm y /var/lib/mysql/mydata/mytable.ibd. El archivo .ibd contiene datos e páginas de índice para la tabla.Para importar la tabla individuo debe

  1. Coloque el mytable.frm en /var/lib/mysql/mydata folder en el Servidor-T
  2. Coloque el mytable.ibd en /var/lib/mysql/mydata folder en el Servidor-T
  3. Run ALTER TABLE mydata.mytable IMPORT TABLESPACE;

Asegúrate de que tienes la /var/lib/mysql/ibdata1 en el mismo lugar desde el que se importó.

Moraleja de la historia

Por favor, no use técnicas TABLESPACE IMPORTACIÓN a través de diferentes servidores. Solo haz un mysqldump de todo e importa el mysqldump. Los vertederos lógicos son siempre la forma más segura de hacerlo.

+0

muchas gracias! eso fue realmente útil. Me volví loco intentando descubrirlo. – JJunior

+1

La parte "Servidor-S y Servidor-T debe ser la misma". significa que al reemplazar el disco del sistema es imposible importar archivos frm InnoDB? – Kawu

+0

tengo la misma pregunta que @Kawu. – EnchanterIO

6

Hice una importación de mysql usando los archivos en xampp. Tengo muchas bases de datos, así que no quería pasar por la ruta mysqldump. El proceso fue:

  1. Instalar el nuevo xampp, pero no se permiten los servicios
  2. actualización my.ini para incluir cualquier configuración personalizada que tenía en la instalación anterior.
  3. Confirmar que MySQL está empezando éxito
  4. Copia sobre todas las carpetas de base de datos (dentro de la carpeta de datos) de la vieja instalación con la excepción de MySQL, phpmyadmin y WebAuth.
  5. Confirmar que MySQL está empezando éxito
  6. Copia sobre ib_logfile0, ib_logfile1 y ibdata1. Cambie el nombre de los archivos primero, no sobrescriba solo en caso de que algo salga mal.
  7. Confirmar que MySQL está empezando éxito
  8. Copia lo largo de los siguientes archivos de datos desde el /mysql carpeta: db.frm, db.MYD, db.MYI, user.frm, user.MYD, user.MYI. No sobrescriba los nuevos por si acaso no funciona.
  9. Confirmar que MySQL está empezando éxito

Al final del proceso de MySQL que había trabajando perfectamente con todas mis bases de datos y usuarios intactas.

+0

si lo hace en Linux, no olvide configurar el propietario y el grupo de los archivos ib_logfile0, ib_logfile1, ibdata1. De forma similar, configure también el propietario de los archivos de la base de datos. – blvdeer

0

Simplemente copie la carpeta de 'datos' deseada para dirigirse a la carpeta de datos mysql, después de cambiar el nombre de la carpeta 'data' actual, después de detener el servicio de mysql. Y exporte al archivo sql con phpmyadmin, y restaure la carpeta de datos actual, e importe los datos deseados sql.

0

Creo que el gran problema que puede experimentar proviene del hecho de que ni siquiera puede ver estos archivos .frm en la interfaz de phpmyadmin (porque en realidad son conjuntos incompletos).Te sugiero que elimines estos archivos de la ubicación actual y uses phpmyadmin para volver a crear estas tablas como SQL en la pestaña "consulta" [eliminar IFF si tienes un script de base de datos de todo. si no, aún puedes obtener esto del viejo vertedero. si no es gaian, NO lo borres). Gracias: chagbert.

Cuestiones relacionadas