web-dev-qa-db-fra.com

Erreur de syntaxe SQL près de gunzip lors de la restauration d'une base de données à l'aide du fichier .sql.gz

J'essaie de restaurer une base de données mysql à l'aide d'un fichier .sql.gz. J'utilise la console mySql pour exécuter une commande car la taille du fichier est trop grande pour phpMyAdmin. La commande que j'utilise est

gunzip C:/Vik/Gya/Source/beed_2013-04-06.sql.gz | mysql -u root -p bd

où root est l'identifiant de l'utilisateur. Il n'y a pas de mot de passe pour root. BD est la base de données à laquelle j'essaie d'importer. mysql s'exécute sur ma machine locale (Windows 8). J'ai une configuration wamp.

C'est l'erreur que j'obtiens:

ERREUR 1064 (42000): vous avez une erreur dans votre syntaxe SQL; vérifier la manuel correspondant à la version de votre serveur MySQL pour le droit syntaxe à utiliser près de 'gunzip C:/Vikalp/Gyankosh/Source/beedictionary_2013-04-06.sql | mysql -u root -p' à la ligne 1.

Toute aide est la bienvenue.

Merci et salutations, Vikalp Jain

11
Vikalp Jain

Si vous tapez gunzip et que vous obtenez une erreur de syntaxe SQL qui se plaint de gunzip, vous êtes déjà connecté à la console mysql. La console mysql n'est pas un shell d'usage général!

Vous utilisez Windows et je soupçonne que vous n’avez pas installé gzip sur votre ordinateur (ce n’est pas un utilitaire intégré). C'est un outil Unix classique mais vous pouvez trouver des binaires pour Windows . Installez-le et exécutez votre commande d'origine avec quelques ajustements:

  1. Assurez-vous que vous êtes dans l'invite Windows (C:\>)

  2. Rediriger le résultat de gunzip vers stdout plutôt que vers un fichier:

    gunzip --stdout C:/Vik/Gya/Source/beed_2013-04-06.sql.gz | mysql -u root -p bd
    

Vous pouvez également lancer le dump depuis MySQL promt (mysql>) si vous le décompressez d’abord (vous n'avez pas besoin spécifiquement de gzip en ligne de commande, la plupart des archiveurs graphiques tels que 7-Zip supporte ce format):

mysql> \. C:/Vikalp/Gyankosh/Source/beedictionary_2013-04-06.sql
4
Álvaro González

Vous avez besoin de l'option -c (sortie sur stdout)

gunzip -c xxx.sql.gz |mysql -u root -p
68
kisoft

Bien que la réponse de Kisoft soit la bonne, je tenais simplement à souligner que vous n’avez pas besoin de -c, cela fonctionne très bien, car elle est . Cette commande décompressera le dump de la base de données et l’importera dans la base en même temps. 

gunzip < output.sql.gz | mysql -u <username> -p<password> <database>
22
Comocho00

vous n'avez pas besoin de gunzip juste: zcat myfile.gz | mysql -uuser -ppassword mydatabaseit est plus rapide de cette façon

1
Mirel

Votre réponse est déjà là

phpMyAdmin: Impossible d'importer un fichier de base de données volumineux, des suggestions?

Sous le fichier php.ini, normalement situé dans c:\xampp\php ou wampp comme vous l'avez appelé

post_max_size=128M
upload_max_filesize=128M

Changer de valeur vous donnera ce que vous voulez. Bonne chance N'oubliez pas de redémarrer, Apache et mysql.

1
Wayne Tun

Essayez les étapes suivantes pour restaurer la base de données à l’aide de fichiers .gz:

1. Run command : gunzip C:/Vik/Gya/Source/beed_2013-04-06.sql.gz

Cela décompressera le fichier .gz et stockera simplement beed_2013-04-06.sql au même endroit.

2. Type the following command to import sql data file:
      mysql -u username -p bd < C:/Vik/Gya/Source/beed_2013-04-06.sql
0
kd12