Réponses:
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>écrira le résultat de la mysqlcommande stdoutdans le fichier myfile.sql.gzqui n’est probablement pas ce que vous voulez. De plus, cette commande vous demandera le mot de passe de l'utilisateur MySQL "root".
~/.my.cnfavec 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 pvet 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
pvsemble ê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 pvpour 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
gunzipsur 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 zcatindiquant que le message d'erreur contient le nom du fichier avec un suffixe supplémentaire .Z, essayez à la gzcatplace, 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-stdoutoption de gunzipcommande
par exemple:
gunzip -c file.sql.gz | mysql -u root -p database