Chaque fois que j'essaye de faire un mysqldump
j'obtiens l'erreur suivante:
$> mysqldump --single-transaction --Host host -u user -p db > db.sql
mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM,
'$."number-of-buckets-specified"') FROM
information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'db' AND
TABLE_NAME = 'Absence';':
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)
Le résultat est un vidage qui n'est pas complet. La chose étrange est que la même commande, exécutée à partir d'un autre hôte, fonctionne sans lancer d'erreurs. Quelqu'un a-t-il rencontré le même problème?
J'utilise mysql-client 8.0
et essayez d'accéder à un mysql 5-7
serveur - c'est peut-être la raison?
Cela est dû à un nouvel indicateur activé par défaut dans mysqldump 8. Vous pouvez le désactiver en ajoutant --column-statistics = 0. La commande sera quelque chose comme:
mysqldump --column-statistics=0 --Host=<server> --user=<user> --password=<password>
Vérifiez ce lien pour plus d'informations. Pour désactiver les statistiques de colonne par défaut, vous pouvez ajouter
[mysqldump]
column-statistics=0
dans un fichier de configuration MySQL, tel que /etc/my.cnf ou ~/.my.cnf.
Pour ceux qui utilisent MySQL Workbench, il y a un bouton "Options avancées" sur l'écran d'exportation de données. L'option "Utiliser les statistiques de colonne" peut être désactivée en définissant sur 0.
Je n'ai pas confirmé, mais les informations suivantes ont été suggérées comme étant également vraies: Dans la version 8.0.14, il est manquant. Dans la version 8.0.16, cela se fait par défaut.
J'ai passé toute la journée à chercher une solution et j'ai chanté ici juste pour partager la mienne.
Oui, cette erreur est probablement due à une différence de version.
Téléchargez simplement MySQL 5.7 Zip Archive à partir d'ici: https://dev.mysql.com/downloads/mysql/ et décompressez-le, puis utilisez le fichier mysqldump.exe à partir de là.
Si vous utilisez MySQL Workbench, vous devrez définir un chemin vers l'outil mysqldump que vous avez téléchargé en allant dans Édition -> Préférences -> Administration (à partir de volet gauche).
J'espère que cela t'aides.
Pour rendre cette réponse plus facile, vous pouvez renommer mysqldump
, créer un script Shell à sa place et appeler le mysqldump
renommé avec le --column-statistics=0
argument. Par exemple:
Renommez mysqldump:
mv /usr/local/bin/mysqldump /usr/local/bin/_mysqldump
Enregistrez le script Shell suivant à sa place:
#!/bin/sh
_mysqldump --column-statistics=0 $@
Pour macOS, vous avez besoin de l'ancienne version (8.0.13) pour voir les "statistiques de colonne", car je teste les versions 8.0.14 et 8.0.15 et les deux ne montrent pas les "statistiques de colonne".
Donc, pour ajuster les "statistiques de colonne", utilisez la version 8.0.13 https://downloads.mysql.com/archives/get/file/mysql-workbench-community-8.0.13-macos-x86_64. dmg
J'utilise XAMPP et MySQL Workbench prévient d'une incompatibilité de version. J'ai défini MySQL Workbench pour pointer vers mysql.exe et mysqldump.exe de XAMPP.
Allez dans Edition -> Préférences -> Administration et définissez le chemin d'accès pour chacun.
Cela fonctionne au moins pour la version 8.0.14. Donc, pour d'autres, vous voudrez peut-être éviter d'utiliser la version groupée de mysql et mysqldump.
Dans ma situation, j'utilise mac-OS. Au fait, il y avait [mysqldump] column-statistics=0
champs dans my.cnf
fichier placé sous /usr/local/etc
répertoire. La suppression de ce champ a résolu le problème. (pas: la version mysql est 5.7 et installée via homebrew).
J'ai également eu le même problème, il se produit lorsque je fusionne plusieurs tables de données au schéma existant à partir d'un autre schéma et exporte les données fusionnées vers un fichier de script autonome. J'ai essayé de changer les statistiques de la colonne = 0, mais le résultat était le suivant,
C:\xampp\mysql\bin>mysqldump --column-statistics=0 --Host=loalhost --user root --passwod
mysqldump: unknown variable 'column-statistics=0'
Je n'ai donc pas aidé. J'analyse le journal MySQL, je trouve que
2019-01-21 11:31:30 1050 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
2019-01-21 11:31:30 4176 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.
il se plaint de la taille de la taille innodb_buffer_pool_size. Je l'ai fait jusqu'à 24 Mo. Alors ça marche.