web-dev-qa-db-fra.com

mysqldump jette: table inconnue 'COLUMN_STATISTICS' dans information_schema (1109)

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?

183
manifestor

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.

268
cristhiank

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.

30
atjoedonahue

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.

20
DodiX

Travail le plus simple possible

Lors de l'utilisation Mysql Workbench 8.0

  • Ouvrez l'onglet "Exportation de données"
  • Cliquez sur Options avancées enter image description here
  • Sous l'en-tête Autre, définissez les statistiques de colonne sur 0 enter image description here
  • Exporter à nouveau enter image description here

Bonne chance!

7
anson

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 [email protected]
5
pierlo

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

2
Edimar Barbosa

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.

1
Dean Or

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).

0
Hatip Aksunger

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.

0
Rasike Abeyratne