Не могу экспортировать мою базу данных из MySQL Workbench

Эй, ребята, я пытаюсь экспортировать свою базу данных из MySQL, но я получаю это в ходе экспорта:

Работает: mysqldump.exe --defaults-file="c:\users\user\appdata\local\temp\tmp2h91wa.cnf" --user=root --host=localhost --protocol=tcp --port=3306 --default-character-set=utf8 --skip-triggers "mydb" mysqldump: не удалось выполнить SELECT COLUMN_NAME,
JSON_EXTRACT (HISTOGRAM, '$. "Указано количество ведер" ")
FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'mydb' AND TABLE_NAME = 'курсы';': неизвестная таблица' column_statistics 'в информационной_схеме (1109)

Операция завершилась неудачно с кодом выхода 2 20:55:09 Экспорт файла C:\Users\user\Documents\dumps\mydb.sql завершен с 1 ошибкой

У вас есть идеи, что может пойти не так? Спасибо

17 ответов

Подводя итог тому, что я сделал, из полезных комментариев @JustinLaureno и @Mohd.Shaizad, протестированных на MySQL Workbench 8.0.18:

  • Перейдите к C:\Program Files\MySQL\MySQL Workbench 8.0 CE\modules

  • Отредактируйте файл wb_admin_export.py (для этого вам нужны права администратора)

  • изменить строку:

    skip_column_statistics = True if get_mysqldump_version() > Version(8, 0, 2) and self.owner.ctrl_be.target_version < Version(8, 0, 0) else False
    
  • кому:

    skip_column_statistics = True
    
  • НЕ добавляйте встроенные комментарии, иначе это не сработает!

    skip_column_statistics = True # This won't work
    
  • Перезапустите MySQL Workbench

  • Выполните экспорт

Также столкнулся с этой проблемой. Решено следующим образом: В меню Workbench перейдите к:

Редактировать - Настройки - Администрирование

В поле "Путь к инструменту mysqldump" укажите путь к mysqldump.exe, в моем случае "C: \ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqldump.exe", нажмите кнопку "ОК".

После этого ошибка больше не появлялась.

В MySql Workbench версии 8.0.13 выполните следующие шаги:

  1. Перейти в Управление / Экспорт данных
  2. Выберите схему для экспорта в списке "Таблицы для экспорта"
  3. Нажмите кнопку "Дополнительные параметры..." (вверху справа)
  4. Найдите опцию "Другое / столбец-статистика"
  5. Установите значение 0
  6. Нажмите кнопку "Вернуться" (вверху справа)

Теперь это должно работать. К сожалению, вам придется делать это каждый раз, когда вы запускаете MySql Workbench.

Это происходит из-за флага, который по умолчанию "включен" в mysqldump 8.

Это можно отключить, добавив --column-statistics=0.

Синтаксис:

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

Для получения дополнительной информации, пожалуйста, перейдите по ссылке

Чтобы отключить статистику столбцов по умолчанию, вы можете добавить

[ТуздЫшпр]

column-statistics=0

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

Ошибка по-прежнему в Workbench 8.0.16.

Исправить:

Вы можете редактировать wb_admin_export.py в модулях в программном каталоге рабочей среды. Найдите "skip_column_statistics = True" (вы найдете условное, не беспокойтесь), закомментируйте эту строку и добавьте строку "skip_column_statistics = True" (без условного).

Обязательный параметр теперь будет всегда добавляться.

У меня была та же проблема 5 минут назад.

Я исправил это, добавив в mysqldump команда --column-statistics=0, Сделай это, и это должно сработать.

В моем случае это задание на фингер, но вы должны понять.

введите описание изображения здесь

У меня тоже была та же проблема. Я могу решить эту проблему, отключив статистику столбцов в расширенных параметрах MySQL Workbench Data Export.

1: Нажмите на дополнительные параметры:

2: В другом разделе для столбца-статистики удалите TRUE и установите его равным 0, чтобы отключить его.

Теперь верните и экспортируйте данные. Благодарю вас

Я нашел это состояние в wb_admin_export.py вместо прокомментированного --column-statistics=0. вы можете удалитьelse False состояние или измените его на else True.

skip_column_statistics = True if get_mysqldump_version() > Version(8,
0, 2) and self.owner.ctrl_be.target_version < Version(8, 0, 0) else
True

У меня была такая же проблема, и я решил ее так:

отредактируйте настройки рабочего места: Правка -> Настройки -> Администрирование

в свойстве "Путь к инструменту mysqldump" укажите путь к файлу mysqldump.exe. Обычно он находится в "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe".

В Mysql-workbench версии 8.0.14 у вас нет возможности отключить статистику столбцов Mysql-workbench версии 8.0.13

Но у вас есть возможность сделать это, включив delete-master-logs: Mysql-workbench версии 8.0.22

  • --delete-master-logs has the same effect as the "RESET MASTER" SQL command
  • RESET MASTER deletes all binary log files listed in the index file, resets the binary log index file to be empty, and creates a new binary log file. This statement is intended to be used only when the master is started for the first time.

Идти к C:\Program Files\MySQL\MySQL Workbench 8.0 CE\modules и откройте этот файл wb_admin_export.py и раскомментируйте "--column-statistics=0"затем перезапустите верстак

On MACOS, just downgrade to version 8.0.13, that's the only thing did the job for us.

The following link can help

https://downloads.mysql.com/archives/workbench/

If you are using SSH key to access remote database then do the following -:

Step 1

      brew install putty

Step 2

      puttygen id_rsa -O private-openssh -o id_rsa.pem

Step 3 - In MySQL workbench

      SSH Key File: /Users/local/.ssh/id_rsa.pem

Hope it helps someone because it wasted 3 hours of our time :)

Я столкнулся с той же проблемой с последней версией MySQL workbench, я решил ее с помощью командной строки mysqldump

      C:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump --column-statistics=0  --user=USERNAME --host=REMOTE_HOST --protocol=tcp --port=3306 --default-character-set=utf8 DATABASE_NAME > c:\temp\dump.sql --password

Замените USERNAME, REMOTE_HOST, DATABASE_NAME своими именами.

Перейдите в C: \ Program Files \ MySQL \ MySQL Workbench 8.0 CE \ modules и откройте этот файл wb_admin_export.py \, вы можете удалить условие else False или изменить его на else True.

      skip_column_statistics = True if get_mysqldump_version() > Version(8,
0, 2) and self.owner.ctrl_be.target_version < Version(8, 0, 0) else
True

В версии 8 я изменил "wb_admin_export.py" и перезапустил рабочую среду. работает для меня

def start(self):
.
.
.
    title = "Dumping " + schema
    title += " (%s)" % table
    # description, object_count, pipe_factory, extra_args, objects
    args = []
    args.append('--column-statistics=0')
class ViewsRoutinesEventsDumpData(DumpThread.TaskData):
    def __init__(self, schema, views, args, make_pipe):
        title = "Dumping " + schema + " views and/or routines and/or events"
        if not views:
           extra_args = ["--no-create-info"]
        else:
            extra_args = []
        DumpThread.TaskData.__init__(self,title, len(views), ["--skip-triggers", " --no-data" ," --no-create-db", "--column-statistics=0"] + extra_args + args, [schema] + views, None, make_pipe)```

Если вы используете окна с XAMPP, вам нужно указать путь через XAMP. Сделайте следующее:

В вашем MySQL Workbench: перейдите к edit -> preferences -> administration в разделе «Путь к инструменту mysqldump» введите путь: C:\xampp\mysql\bin\mysqldump.exe затем нажмите ОК.

Вы можете использовать собственный MySQL Workbench "Мастер миграции", чтобы переносить данные без ошибок. Его можно найти в менюБаза данных -> Мастер миграции. Он может передавать данные "онлайн", но я не нашел возможности создать с его помощью файл дампа. Это довольно хорошее решение для миграций

Другие вопросы по тегам