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?
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.)