Compose for MySQL uses the InnoDB storage engine to provide group replication. As a result, there are a few helpful things to know about how your Compose for MySQL deployment works.
All replicated tables need a Primary Key
The InnoDB storage engine executes all transactions and then checks for conflicts when transactions are committed to the database. Conflicting transactions on data are then resolved through rolling back some of the transactions. The engine uses the primary keys as the unique identifier of the data, to ensure that transactions and replication maintain consistency.
Since Compose for MySQL takes advantage of the group replication through the use of InnoDB tables, this affects interoperability with other variants of the MySQL database, such as older versions or forks of the open source database.
If you have a MySQL database/dump that has been created in a MyISAM-based environment, trying to import it into Compose will fail. The logs will contain the error message "The table does not comply with the requirements by an external plugin".
To avoid this issue, you will have to modify the source of the import data. This can be achieved by converting the source database to InnoDB before exporting and then importing into a Compose for MySQL deployment.
Read more about the InnoDB Storage Engine and the replication requirements in the MySQL documentation.
If this article didn't solve things, summon a human and get some help!
Updated about a year ago