Réponses:
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>
écrira le résultat de la mysql
commande stdout
dans le fichier myfile.sql.gz
qui n’est probablement pas ce que vous voulez. De plus, cette commande vous demandera le mot de passe de l'utilisateur MySQL "root".
~/.my.cnf
avec les informations d'identification. ;)
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
. Il saura que le dernier paramètre est la base de données que vous souhaitez utiliser, pas votre mot de passe.
Pour afficher une barre de progression lors de l'importation d'un fichier sql.gz, téléchargez pv
et utilisez les éléments suivants:
pv mydump.sql.gz | gunzip | mysql -u root -p
Dans CentOS / RHEL, vous pouvez installer pv avec yum install pv
.
Dans Debian / Ubuntu apt-get install pv
.
En MAC, brew install pv
pv
semble être dans le repo Ubuntu aussi (du moins dans 12.04 LTS, c’est le cas), mais encore une fois, vous devez le faire sudo apt-get install pv
pour l’obtenir. Merci Banjer, c'est parfait pour les grosses importations de bases de données!
brew install pv
Le moyen le plus simple consiste à décompresser le fichier de base de données avant de l'importer. Aussi comme mentionné par @Prof. Moriarty vous ne devriez pas spécifier le mot de passe dans la commande (il vous sera demandé le mot de passe). Cette commande extraite de webcheatsheet va décompresser et importer la base de données en une fois:
gunzip < myfile.sql.gz | mysql -u root -p mydb
gunzip
sur un fichier compressé de 10 Go a bloqué mon importation. Je ne sais pas si cela est dû à des contraintes de mémoire ou à quelque chose du genre, mais je préférerais faire une étape à la fois dans le futur.
Si vous obtenez une erreur zcat
indiquant que le message d'erreur contient le nom du fichier avec un suffixe supplémentaire .Z
, essayez à la gzcat
place, comme décrit à l' adresse https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly.
Vérifiez également s'il existe une instruction USE dans le fichier SQL. La spécification de la base de données sur la ligne de commande ne garantit pas la fin des données si une destination différente est spécifiée dans le fichier SQL.
pv mydump.sql.gz | gunzip | mysql -u root -p
your_database
. La réponse acceptée utilise cette approche.
Pour les fichiers compressés bzip2 (.sql.bz2), utilisez:
bzcat <file> | mysql -u <user> -p <database>
OU
pv <file> | bunzip2 | mysql -u <user> -p <database>
pour voir la barre de progression.
Vous pouvez utiliser l' -c, --stdout, --to-stdout
option de gunzip
commande
par exemple:
gunzip -c file.sql.gz | mysql -u root -p database