Importar o exportar tablas grandes en MySQL

Si trabajando con tablas desde PhpMyAdmin nos muesta el mesaje

No se recibieron datos para importar. O no se envi贸 el nombre del archivo o el tama帽o del archivo excedi贸 el m谩ximo permitido por su configuraci贸n PHP.

Lo m谩s secillo es importar esa tabla desde terminal o consola. Usando pj. la aplicaci贸n Putty, nos conectamos a nuestro sevidor web. Antes habr谩 que subir desde un cliente FTP, pj. Filezilla, el fichero .sql (o .csv) al servidor web, a un directorio accesible desde terminal pj. /home/nombre_usuario.

Desde la ventana de terminal teclear:

mysql 鈥搖 usuario_mysql nombre_bbdd < ruta_y_nombre_del_fichero_importaci贸n.sql

Si por el contrario queremos exportar una base de datos ya existente, deberemos introducir el siguiente comando en la consola:

mysqldump 鈥搖 usuario_mysql -p nombre_bbdd > fichero_exportaci贸n.sql

Ejemplos desde la shell de MySQL

  • Para hacer una copia de seguridad de una base de datos completa:
shell> mysqldump db_name > backup-file.sql
  • Para cargar el archivo de volcado de nuevo en el servidor:
shell> mysql db_name < backup-file.sql
  • Otra forma de recargar el archivo de volcado:
shell> mysql -e "source /path-to-backup/backup-file.sql " db_name
  • mysqldump tambi茅n es muy 煤til para completar las bases de datos copiando datos de un servidor MySQL a otro:
shell> mysqldump --opt db_name | mysql --host= remote_host -C db_name
  • Se puede volcar varias bases de datos con un solo comando:
shell> mysqldump --databases db_name1 [ db_name2 ...] > my_databases.sql
  • Para volcar todas las bases de datos, utilizar la opci贸n –all-database:
shell> mysqldump --all-databases > all_databases.sql
  • Para tablas InnoDB, mysqldump proporciona una manera de hacer una copia de seguridad en l铆nea:
shell> mysqldump --all-databases --master-data --single-transaction > all_databases.sql

En las copias de seguridad se sugiere el uso de bloqueo de lectura global sobre todas las tablas (utilizando FLUSH TABLES WITH READ LOCK).