Me vi en la necesidad de restaurar una tabla de 11 millones de registros y 2.5 GB en un script SQL, márgenes que excedían de la capacidad de phpMyAdmin. Así que explico cómo hacerlo por línea de comandos:
Crear una base de datos por línea de comandos:
mysqladmin -u Usuario -pContraseña create NombreBaseDeDatos
Dónde
– Usuario, no requiere el @localhost, por ejemplo: root
– pContraseña Es importante ponerla a continuación del -p sin espacios
Ejecutar un script SQL -enorme- sobre la base de datos por línea de comandos:
mysql -u Usuario -pContraseña NombreBaseDeDatos < millonesDeInserts.sql
Monitorizar mediante SQL por línea de comandos la evolución de esta barbaridad de inserciones, usé la combinación de varios comandos:
- Envié la tarea mysql en ejecución al background: pulsando Control + Z para congelarla y ejecutando bg para que continue en segundo plano. Esto es de los inicios de Unix, así que para más info, mejor lee un manual de la shell Bash.
- Ejecutar una sentencia SELECT por línea de comandos
- y hacerlo con periodicidad de 2 segundos (watch es uno de esos míticos comandos que también deberías conocer)
watch -n 2 'mysql -u Usuario -pContraseña -D NombreBaseDeDatos -e "select count(*) Num from tabla;'
Como resultado, veremos el número de registros insertados con un tiempo de refresco de 2 segundos.
Más sobre MySQL: Run Query from Bash Script or Linux Command Line