Frage mysqldump throws: Unbekannte Tabelle 'COLUMN_STATISTICS' in information_schema (1109)


Jedes Mal wenn ich versuche ein mysqldump Ich erhalte den folgenden Fehler:

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

Das Ergebnis ist ein Dump, der nicht vollständig ist. Das Seltsame ist, dass der gleiche Befehl, der von einem anderen Host ausgeführt wird, ohne Fehler funktioniert. Hat jemand das gleiche Problem erlebt?

Ich benutze mysql-client 8.0 und versuche auf einen mysql zuzugreifen 5-7 Server - vielleicht ist das der Grund?


28
2018-05-14 16:40


Ursprung




Antworten:


Dies liegt an einem neuen Flag, das standardmäßig in mysqldump 8 aktiviert ist. Sie können es deaktivieren, indem Sie --column-statistics = 0 hinzufügen. Der Befehl wird etwa lauten:

mysqldump --column-statistics=0 --host=<server> --user <user> --password <securepass> 

Prüfen dieser Link für mehr Informationen. Um Spaltenstatistiken standardmäßig zu deaktivieren, können Sie hinzufügen

[mysqldump]
column-statistics=0

zu einer MySQL-Konfigurationsdatei wie /etc/my.cnf oder ~ / .my.cnf.


46
2018-05-17 13:10



--Databases <Datenbankname> für eine bestimmte Datenbank - Mohhamad Hasham
@forthrin Antwort bearbeitet, um zu zeigen, wie man die Änderung dauerhaft macht. - Andrew Schulman


Ich verbrachte den ganzen Tag damit, nach einer Lösung zu suchen, und bin hier eingesperrt, nur um meine zu teilen.

Ja, wahrscheinlich liegt dieser Fehler am Versionsunterschied.

Einfach herunterladen MySQL 5.7 ZIP-Archiv von hier: https://dev.mysql.com/downloads/mysql/ und entpacken Sie es, dann verwenden Sie die mysqldump.exe-Datei von dort.

Wenn Sie MySQL Workbench verwenden, müssen Sie einen Pfad zu dem heruntergeladenen mysqldump-Tool festlegen, indem Sie zu gehen Bearbeiten -> Einstellungen -> Verwaltung (von der linken Seite).

Hoffe das hilft.


7
2018-05-15 15:32



Für Windows-Benutzer befand sich diese .exe unter: C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe - Jason


Zu machen diese Antwort einfacher, Sie können umbenennen mysqldumpMachen Sie ein Shell-Skript an seiner Stelle und rufen Sie den umbenannten mysqldump mit dem --column-statistics=0 Streit. Z.B:

Benenne mysqldump um:

mv /usr/local/bin/mysqldump /usr/local/bin/_mysqldump

Speichere das folgende Shell-Skript an seiner Stelle:

#!/bin/sh

_mysqldump --column-statistics=0 $@

2
2017-07-04 05:25



Dies ist ein großartiger Vorschlag und funktioniert in MacOSX mit der Mysql Workbench, aber Sie müssen den vollständigen Pfad zu Ihrer echten mysqldump-Programmdatei angeben oder es schien nicht zu funktionieren. Ich habe versucht ./ aber immer noch nicht funktionieren. Der vollständige Pfad wurde eingefügt und die Workbench konnte sie mit den ausgeschalteten Statistiken ausführen. - Andy D


Für diejenigen, die MySQL Workbench verwenden, gibt es eine Schaltfläche "Erweiterte Optionen" auf dem Datenexport-Bildschirm. Die Option "Spaltenstatistik verwenden" kann deaktiviert werden, indem Sie auf 0 setzen.


0
2017-10-25 22:57