Как конвертировать базу данных MAIN mysql в InnoDB из MyIsam - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь управлять репликацией группы mysql и заметил проблему при манипулировании пользователями и грантами .10 основных таблиц mysql в основной базе данных mysql - это MyIsam.Поэтому я не могу добавить базы данных или пользовательские разрешения, потому что они не работают и не будут реплицироваться. Репликация группы мастер-мастер требует всего InnoDB.

ALTER TABLE отлично работает на обычных пользовательских базах данных / таблицах, но как это исправить в основной базе данных mysql?

Iпробовал это, но все они терпят неудачу:

ALTER TABLE mysql.db ENGINE = InnoDB;
ALTER TABLE mysql.tables_priv ENGINE = InnoDB;
ALTER TABLE mysql.user ENGINE = InnoDB;

ОШИБКА: ОШИБКА 1726 (HY000): механизм хранения 'InnoDB' не поддерживает системные таблицы.

Другая запущенная ошибкаCREATE USER ...

[ОШИБКА] Плагин group_replication сообщил: «Таблица db не использует механизм хранения InnoDB.Это несовместимо с репликацией группы '

ОШИБКА 3098 (HY000): таблица не соответствует требованиям внешнего плагина group_replication.

Версия сервера: 5.7.23-log Сервер совместной работы MySQL

1 Ответ

0 голосов
/ 13 октября 2018

НЕ ИЗМЕНЯЙТЕ ДВИГАТЕЛЬ В СИСТЕМНЫХ ТАБЛИЦАХ

MySQL еще не изменил код настолько, чтобы позволить mysql.* быть чем-то отличным от MyISAM.MySQL 8.0 вносит изменения, превращая таблицы («словарь данных») в таблицы InnoDB, с радикально отличающейся структурой и возможностями.

Поскольку вы находитесь на 5.7.23, вы всего один (большой) шагот 8.0.xx.Рассмотрите возможность обновления.

Репликация работает с таблицами MyISAM, , но кластеризация - нет. Galera и Group Replication работают с этими таблицами MyISAM другими способами.См. Документацию о том, что происходит с GRANT, CREATE USER и т. Д. Не используйте UPDATE и INSERT для манипулирования таблицами, связанными с логином.

(Автор этого вопроса, похоже, имеетисправил проблему, удалив плагин.)

...