web-dev-qa-db-fra.com

Comment désactiver les statistiques de colonnes dans MySQL 8 de manière permanente?

Depuis MySQL 8 le drapeau column-statistics est activé par défaut.

Donc, si vous essayez de vider certaines tables avec MySQL Workbench 8.0.12, vous obtenez ce message d'erreur:

14:50:22 Dumping db (nom_table) En cours d'exécution: mysqldump.exe --defaults-file = "c:\utilisateurs\nom d'utilisateur\appdata\local\temp\tmpvu0mxn.cnf" --user = utilisateur_db --Host = hôte_base --protocol = tcp --port = 1337 - -default-character-set = utf8 --skip-triggers "nom_base" "nom_table" mysqldump: Impossible d'exécuter 'SELECT COLUMN_NAME, JSON_EXTRACT (HISTOGRAM,' $. "nombre-de-compartiments-spécifiés" ') FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME =' db_name 'ET TABLE_NAME =' table_name ';' COLUMN_STATISTICS 'dans information_schema (1109)

L'opération a échoué avec le code de sortie 2 14:50:24 L'exportation de C:\chemin\vers\mon\dump est terminée avec 1 erreur

MySQL (Workbench) 8 permet-il de désactiver column-statistics de manière permanente?


Solution de contournement 1

Une solution de contournement ennuyeuse le fait à la main via:

mysqldump --column-statistics=0 --Host=...

Contournement 2

  1. renommer mysqldump
  2. créer un script shell (ou batch sous Windows) 
  3. appeler le mysqldump renommé avec l'argument --column-statistics=0 dans ce script
  4. enregistrez-le sous mysqldump

Contournement 3

  1. télécharger MySQL 5.7
  2. extraire mysqldump
  3. utiliser ce mysqldump

Par exemple, dans MySQL Workbench: Edition/Préférences .../Administration/Chemin d'accès à l'outil mysqldump


Merci d'avance!

14
Flo Bayer

Plus facile travail autour

Lorsque vous utilisez Mysql Workbench 8.0

  • Ouvrez l'onglet "Data Export"
  • Cliquez sur Options avancées  enter image description here
  • Sous la rubrique Autre, définissez les statistiques de colonne sur 0  enter image description here
  • Exporter à nouveau  enter image description here

Bonne chance!

9
Troyd Destin

L'idée est la suivante: chaque version de serveur a une version dédiée de mysqldump. Pas idéal et certainement pas très compatible en amont, mais c'est la situation. MySQL Workbench ne peut inclure qu'un seul binaire mysqldump. Le dernier est utilisé. L’approche consistant à télécharger MySQL 5.7 Zip et à utiliser mysqldump à partir de là constitue une bonne solution de contournement sans beaucoup d’effets secondaires. Vous devez seulement faire attention au serveur sur lequel vous videz avec quelle version de vidage.

Si vous souhaitez que cet indicateur de colonne soit automatiquement appliqué par MySQL Workbench, veuillez créer un rapport de bogue à l’adresse https://bugs.mysql.com .

Mettre à jour

En attendant, un rapport de bogue a été créé pour ce problème: https://bugs.mysql.com/bug.php?id=91640

2
Mike Lischke

Il peut y avoir une autre solution de contournement si vous utilisez un système d’exploitation prenant en charge mysqldump (c’est-à-dire Linux). Définissez le chemin d'accès au binaire mysqldump dans les préférences et incluez l'argument --column-statistics = 0 dans le chemin, dans:

1
AppSol