Назад | Перейти на главную страницу

mysqldump выдает: Неизвестная таблица COLUMN_STATISTICS в information_schema (1109)

Каждый раз, когда я пытаюсь сделать mysqldump Я получаю следующую ошибку:

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

В результате получается дамп, который не является полным. Странно то, что эта же команда, выполняемая с другого хоста, работает без ошибок. У кого-то возникла такая же проблема?

Я использую mysql-client 8.0 и попробуйте получить доступ к mysql 5-7 сервер - может в этом причина?

Это связано с новым флагом, который включен по умолчанию в mysqldump 8. Вы можете отключить его, добавив --column-statistics = 0. Команда будет выглядеть примерно так:

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

Проверьте эта ссылка Чтобы получить больше информации. Чтобы отключить статистику столбца по умолчанию, вы можете добавить

[mysqldump]
column-statistics=0

в файл конфигурации MySQL, например /etc/my.cnf или ~ / .my.cnf.

Для тех, кто использует MySQL Workbench, есть кнопка «Дополнительные параметры» на экране экспорта данных. Параметр «Использовать статистику столбца» можно отключить, установив значение 0.

Я не подтвердил, но предположили, что следующая информация также соответствует действительности: В версии 8.0.14 она отсутствует. В версии 8.0.16 это делается по умолчанию.

Я провел целый день в поисках решения и записался здесь, чтобы поделиться своим.

Да, вероятно, эта ошибка связана с разницей версий.

Просто скачайте ZIP-архив MySQL 5.7 отсюда: https://dev.mysql.com/downloads/mysql/ и разархивируйте его, затем используйте оттуда файл mysqldump.exe.

Если вы используете MySQL Workbench, вам нужно будет указать путь к загруженному вами инструменту mysqldump, перейдя в Правка -> Настройки -> Администрирование (с левой панели).

Надеюсь это поможет.

Самая простая работа

Когда используешь Mysql Workbench 8.0

  • Откройте вкладку «Экспорт данных».
  • Щелкните Дополнительные параметры
  • Под заголовком "Другое" установите для статистики столбца значение 0.
  • Экспорт снова

Удачи!

Делать этот ответ проще можно переименовать mysqldump, создайте на его месте сценарий оболочки и вызовите переименованный mysqldump с --column-statistics=0 аргумент. Например:

Переименуйте mysqldump:

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

Сохраните на своем месте следующий сценарий оболочки:

#!/bin/sh

_mysqldump --column-statistics=0 $@

Я использую XAMPP, и MySQL Workbench предупреждает о несоответствии версий. Я установил MySQL Workbench, чтобы он указывал на файлы mysql.exe и mysqldump.exe из XAMPP.

Перейдите в Edit -> Preferences -> Administration и установите путь для каждого.

Это работает как минимум для версии 8.0.14. Так что для других вы можете избежать использования объединенной версии mysql и mysqldump.

В macOS вам нужна более старая версия (8.0.13), чтобы видеть «статистику столбцов», потому что я тестирую версии 8.0.14 и 8.0.15, и обе не показывают «статистику столбцов».

Итак, для настройки "столбца-статистики" используйте версию 8.0.13. https://downloads.mysql.com/archives/get/file/mysql-workbench-community-8.0.13-macos-x86_64.dmg

Я знаю, что опаздываю на вечеринку, но это сводило меня с ума. если ты хотеть Чтобы использовать последнюю версию MySQL Workbench (пробованную с последней версией MySQL Workbench 8.0.20), вы можете исправить этот файл:

plugins/wb_admin_export_options.py

в macOS: (/Applications/MySQLWorkbench.app/Contents/Resources/plugins/wb_admin_export_options.py) Заменив эту строку:

  "column-statistics":["Writing ANALYZE TABLE statements to generate statistics histograms.", "FALSE", "BOOL", ("8.0.2", None)]

с этим:

"column-statistics":["Writing ANALYZE TABLE statements to generate statistics histograms (set 0 to disable).", "1", "INT", (None, None)]

Затем удалите .pyo:

rm /Applications/MySQLWorkbench.app/Contents/Resources/plugins/wb_admin_export_options.pyo

В заключение, перезагрузить Снова Workbench и на странице экспорта данных нажмите «Дополнительные параметры ...», и вы снова увидите параметр статистики столбца (установите 0, чтобы отключить, и нажмите кнопку «Вернуться»)

Примечание: вы можете скачать исправленный файл из этого Gist.

В моей ситуации я использую Mac-OS. Кстати, было [mysqldump] column-statistics=0 поля в my.cnf файл, который находится под /usr/local/etc каталог. Удаление этого поля устранило проблему. (не: версия mysql 5.7 и устанавливается через homebrew).

У меня также была такая же проблема, она возникает, когда я объединяю несколько таблиц данных в существующую схему из другой схемы и экспортирую объединенные данные в автономный файл сценария. Я пытался изменить column-statistics = 0, но результат был следующим:

C:\xampp\mysql\bin>mysqldump --column-statistics=0 --host=loalhost --user root --passwod
mysqldump: unknown variable 'column-statistics=0'

Так что мне не помогли. Я проанализировал журнал MySQL и обнаружил, что

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.

он жалуется на размер innodb_buffer_pool_size. Я сделал это до 24 МБ. Тогда это работает.

В дополнение к Pierlo https://serverfault.com/a/919403/586669

В MySQL Workbench есть возможность установить путь к исполняемому файлу mysqldump. (Правка - Настройки - Администрирование)

Таким образом, вы можете создать файл .cmd (в Windows) или .sh (в Linux или Mac) следующим образом:

mysqldump_nostatistics.cmd:

 @ECHO OFF
 "C:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump.exe" %*  --column-statistics=0

mysqldump_nostatistics.sh:

#!/bin/sh

_mysqldump $@ --column-statistics=0

Обратите внимание на порядок параметров (он отличается от порядка Pierlo): выполненная команда dump включает (или может включать) --defaults-file= вариант, и это должно быть первый параметр.

Также требуется отключение эха, иначе рабочая среда не сможет правильно проанализировать вывод команды.