Search code examples
mysqlbashreplicationmysql-group-replication

ERROR 3098 (HY000): The table does not comply with the requirements by an external plugin


SETUP:

  • Three mysql group replication nodes in master master master.
  • All work fine. I can add users/dbs and insert/update data.
  • Each node is bound to a private IP address.
  • I created a bash script to connect to mysql to delete users.
  • Deleting a database with a script works fine.

PROBLEM:

The following commands will NOT run. I can create users and databases and delete databases but cant delete the users. I cant tell if its a replication issue OR a privilege issue.

  • DELETE FROM mysql.user WHERE user='testme123';
  • DELETE FROM mysql.db WHERE user='testme123';
  • DROP USER IF EXISTS 'testme123';

ERROR 3098 (HY000) at line 1: The table does not comply with the requirements by an external plugin.

LOG: [ERROR] Plugin group_replication reported: 'Table user does not use the InnoDB storage engine. This is not compatible with Group Replication.

I get same error via local mysql console too logged in as root.

QUESTION(S):

  • What could be preventing this?
  • How can I troubleshoot what it is I am missing?

Solution

  • If you are using Group Replication (in 5.7 or 8.0), you must do all user authentication through the GRANT/DROP/CREATE USER/etc commands, not INSERT/UPDATE/DELETE/etc.

    MyISAM is not replicated in Group Replication due to serious technical difficulties.

    (The above comments apply to Galera / PXC, too.)

    (Caveat: What I have said may not be strictly true, but I think it will keep you out of trouble, and address the Question at hand.)