web-dev-qa-db-fra.com

Comment charger un fichier sql.gz dans ma base de données? (importation)

J'essaie d'importer un fichier SQL compressé directement dans mysql. Est-ce la bonne façon?

mysql -uroot -ppassword mydb > myfile.sql.gz
165
Alex
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database

> écrit la sortie de la commande mysql sur stdout dans le fichier myfile.sql.gz ce qui n'est probablement pas ce que vous voulez. De plus, cette commande vous demandera le mot de passe de l'utilisateur MySQL "root".

262
joschi

Pour afficher une barre de progression lors de l'importation d'un fichier sql.gz, téléchargez pv et utilisez ce qui suit:

pv mydump.sql.gz | gunzip | mysql -u root -p <database name>

Dans CentOS/RHEL, vous pouvez installer pv avec yum install pv.

Dans Debian/Ubuntu apt-get install pv.

Sous MAC, brew install pv

86
Banjer

Le moyen le plus simple consiste à décompresser le fichier de base de données avant l'importation. Aussi, comme mentionné par @ Prof. Moriarty vous ne devez pas spécifier le mot de passe dans la commande (il vous sera demandé le mot de passe). Cette commande tirée de webcheatsheet décompressera et importera la base de données en une seule fois:

gunzip < myfile.sql.gz | mysql -u root -p mydb
56
icc97

Si vous obtenez une erreur de zcat, dans laquelle le message d'erreur contient le nom de fichier avec un suffixe supplémentaire .Z, puis essayez d'utiliser gzcat à la place, comme décrit sur https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly

15
Mark Howells-Mead

Sur macOS, j'ai utilisé ceci:

zcat < [Database].sql.gz | mysql -u root -p [Database Name in MySQL]

Entrez votre mot de passe, et le tour est joué!

5
Qasim

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 que les données y parviennent si une destination différente est spécifiée dans le fichier SQL.

4
ikso

Pour bzip2 fichiers compressés (.sql.bz2), utilisez:

bzcat <file> | mysql -u <user> -p <database>

OR

pv <file> | bunzip2 | mysql -u <user> -p <database>

pour voir la barre de progression.

1
TimSparrow

Vous pouvez utiliser -c, --stdout, --to-stdout option de la commande gunzip

par exemple:

gunzip -c file.sql.gz | mysql -u root -p database
0
Ali Jazayeri

Exporter dans la commande .sql.qz, c'est: -

mysqldump -u nom d'utilisateur -p base de données | gzip> database.sql.gz

Pour importer la commande de fichier .sql.qz, c'est: -

gunzip <database.sql.gz | mysql -u nomutilisateur -p nouvelle base de données

Shailesh Thapa

0
Shailesh Thapa