Respuestas:
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>
escribirá la salida del mysql
comando stdout
en el archivo myfile.sql.gz
que probablemente no sea lo que desea. Además, este comando le pedirá la contraseña del usuario "root" de MySQL.
~/.my.cnf
con las credenciales. ;)
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
. Sabrá que el último parámetro es la base de datos que desea utilizar, no su contraseña.
Para mostrar una barra de progreso al importar un archivo sql.gz, descargue pv
y use lo siguiente:
pv mydump.sql.gz | gunzip | mysql -u root -p
En CentOS / RHEL, puede instalar pv con yum install pv
.
En Debian / Ubuntu apt-get install pv
.
En MAC, brew install pv
pv
parece estar también en los repositorios de Ubuntu (al menos en 12.04 LTS lo es), pero nuevamente debes hacer eso sudo apt-get install pv
para obtenerlo. Gracias Banjer, ¡esto es perfecto para grandes importaciones de bases de datos!
brew install pv
La forma más sencilla es descomprimir el archivo de la base de datos antes de importar. También como lo menciona @Prof. Moriarty no deberías especificar la contraseña en el comando (se te pedirá la contraseña). Este comando tomado de webcheatsheet descomprimirá e importará la base de datos de una vez:
gunzip < myfile.sql.gz | mysql -u root -p mydb
gunzip
en un archivo comprimido de 10 GB hizo que mi importación se congelara. No estoy seguro de si eso se debe a limitaciones de memoria o algo así, pero me equivocaría al hacer un paso a la vez en el futuro.
Si obtiene un error zcat
, en el que el mensaje de error contiene el nombre del archivo con un sufijo adicional .Z
, intente usarlo gzcat
, como se describe en https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly
Compruebe también si hay alguna instrucción USE en el archivo SQL. Especificar la base de datos en la línea de comando no garantiza que los datos terminen allí si se especifica un destino diferente dentro del archivo SQL.
pv mydump.sql.gz | gunzip | mysql -u root -p
your_database
. La respuesta aceptada utiliza este enfoque.
Para los archivos comprimidos de bzip2 (.sql.bz2), use:
bzcat <file> | mysql -u <user> -p <database>
O
pv <file> | bunzip2 | mysql -u <user> -p <database>
para ver la barra de progreso
Puedes usar la -c, --stdout, --to-stdout
opción de gunzip
comando
por ejemplo:
gunzip -c file.sql.gz | mysql -u root -p database