Не могу экспортировать мою базу данных из 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 выполните следующие шаги:
- Перейти в Управление / Экспорт данных
- Выберите схему для экспорта в списке "Таблицы для экспорта"
- Нажмите кнопку "Дополнительные параметры..." (вверху справа)
- Найдите опцию "Другое / столбец-статистика"
- Установите значение 0
- Нажмите кнопку "Вернуться" (вверху справа)
Теперь это должно работать. К сожалению, вам придется делать это каждый раз, когда вы запускаете 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 "Мастер миграции", чтобы переносить данные без ошибок. Его можно найти в менюБаза данных -> Мастер миграции. Он может передавать данные "онлайн", но я не нашел возможности создать с его помощью файл дампа. Это довольно хорошее решение для миграций