Activer le mode binaire lors de la restauration d'une base de données à partir D'un dump SQL

je suis extrêmement nouveau à MySQL et je l'exécute sur Windows. J'essaie de restaurer une base de données à partir D'un fichier dump dans MySQL, mais j'obtiens l'erreur suivante:

$ >mysql -u root -p -h localhost -D database -o < dump.sql
ERROR: ASCII '"151900920"' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '"151900920"' is expected. Query: 'SQLite format 3'.

j'ai essayé de mettre --binary-mode dans le fichier ini, mais il donne toujours la même erreur. Que dois-je faire? S'il vous plaît aider.

mise à JOUR

comme suggéré par Nick dans son commentaire j'ai essayé $ > mysql -u root -p -h localhost -D database --binary-mode -o < dump.sql mais il m'a donné le après ERROR at line 1: Unknown command '☻'. C'est un fichier dump de 500 Mo, et quand je vois son contenu en utilisant gVIM, tout ce que je peux voir c'est des expressions et des données qui ne sont pas compréhensibles.

42
demandé sur user1434997 2013-06-18 03:15:25

10 réponses

décompresse le fichier, puis importez à nouveau.

84
répondu srinivas 2014-05-09 16:48:06

je rencontre le même problème avec windows. Mon fichier dump a été créé avec Windows powershell et mysqldump comme:

mysqldump db > dump.sql

le problème vient de l'encodage par défaut de powershell est UTF16. Pour approfondir, nous pouvons utiliser L'utilitaire" file " de GNU, et il existe une version windows ici .

La sortie de mon fichier dump est:

Little-endian Unicode UTF-16 le texte, avec des lignes très longues, avec CRLF ligne terminateurs.

puis une conversion du système de codage est nécessaire, et il ya divers logiciels peuvent le faire. Par exemple dans emacs,

M-x set-buffer-file-coding-system

puis entrer le système de codage requis tel que utf-8.

et à l'avenir, pour un meilleur résultat mysqldump, utiliser:

mysqldump <dbname> -r <filename>

et puis la sortie est gérée par mysqldump lui-même, mais pas de redirection de powershell.

référence: https://dba.stackexchange.com/questions/44721/error-while-restoring-a-database-from-an-sql-dump

34
répondu cdarlint 2017-04-13 12:42:39

avez-vous essayé d'ouvrir le bloc-notes++ (ou un autre éditeur) et de nous Convertir/nous sauver en UTF-8?

Voir: notepad++ conversion ansi fichier encodé en utf-8

une autre option peut être d'utiliser textwrangle pour ouvrir et enregistrer le fichier comme UTF-8: http://www.barebones.com/products/textwrangler /

6
répondu Menelaos Bakopoulos 2017-05-23 11:47:19

peut être votre décharge.sql a un caractère de poubelle au début de votre fichier ou il y a une ligne vide au début.

4
répondu Subodh Ranadive 2015-05-08 12:55:06

extraire votre fichier avec l'outil d'archivage Tar. vous pouvez l'utiliser de cette façon:

tar xf example.sql.gz
4
répondu Ghasem Pahlavan 2017-05-11 17:27:09

j'ai eu cette erreur Une fois, après avoir lancé mysqldump sur Windows PowerShell comme ça:

mysqldump -u root p my_db --no-data --no-create-db --no-create-info --routines --triggers --skip-opt --set-gtid-purged=OFF > db_objects.sql

ce que j'ai fait, c'est le changer en ceci (pipe au lieu de Set-Content):

mysqldump -u root p my_db --no-data --no-create-db --no-create-info --routines --triggers --skip-opt --set-gtid-purged=OFF | Set-Content db_objects.sql

Et le problème a disparu!

3
répondu Ifedi Okonkwo 2016-01-18 06:41:02

Sa doit vous fichier de vidage.problème sql.Utilisez Sequel Pro vérifier votre fichier ecoding.Ça devrait être des personnages de poubelle dans ton trou.SQL.

2
répondu Datty Wang 2014-10-20 03:22:40

j'ai eu le MÊME PROBLÈME, MAIS j'ai découvert que le fichier dump était en fait une sauvegarde de serveur MSSQL, pas MySQL.

parfois, les anciens fichiers de sauvegarde nous jouent des tours. Vérifiez votre fichier de vidage.

sur la fenêtre du terminal:

~$ cat mybackup.dmp 

le résultat était:

TAPE??G?"5,^}???Microsoft SQL ServerSPAD^LSFMB8..... etc...

pour arrêter le traitement de la commande cat:

CTRL + C
2
répondu Hugo Miura 2015-07-15 21:29:27

dans Windows machine, s'il vous plaît suivre les étapes précédentes.

  1. ouvrir le fichier dans notepad.
  2. cliquez sur Enregistrer sous
  3. sélectionner le type D'encodage UTF-8.

maintenant source votre db.

2
répondu Amit Kumar Rai 2017-01-05 05:34:00

votre dossier devrait être seulement .extension sql, (.zip. ,gz .rar) etc ne supportera pas. exemple: dump.sql

0
répondu Ibrahim Akbar 2017-10-23 01:02:14