Description:
Proceed as follows:
mysql-js> var cluster = dba.createCluster('myCluster', {adoptFromGR: true});
A new InnoDB cluster will be created based on the existing replication group on instance '127.0.0.1:3306'.
Creating InnoDB cluster 'myCluster' on '127.0.0.1:3306'...
Adding Seed Instance...
Adding Instance '192.168.244.10.:3306'...
Dba.createCluster: The table does not comply with the requirements by an external plugin. (MySQL Error 3098)
then i checked the mysqlsh debug log
2019-09-30 03:27:49: Info: Adopting member 192.168.244.10.:3306 from existing group
2019-09-30 03:27:49: Debug: Adding instance to metadata
2019-09-30 03:27:49: Debug: Connecting to '192.168.244.10.:3306' to query for metadata information...
2019-09-30 03:27:49: Debug: DBA: execute_sql('SELECT host_id, host_name, ip_address FROM mysql_innodb_cluster_metadata.hosts WHERE host_name = '192.168.244.10.' OR (ip_address <> '' AND ip_
address = '')')2019-09-30 03:27:49: Debug: DBA: execute_sql('INSERT INTO mysql_innodb_cluster_metadata.hosts (host_name, ip_address, location) VALUES ('192.168.244.10.', '', '')')
2019-09-30 03:27:49: Debug: DBA: execute_sql('INSERT INTO mysql_innodb_cluster_metadata.instances (host_id, replicaset_id, mysql_server_uuid, instance_name, role, addresses, attributes) VAL
UES (1, 1, '1c0b5286-b659-11e9-9082-000c29f66609', '192.168.244.10.:3306', 'HA', json_object('mysqlClassic', '192.168.244.10.:3306', 'mysqlX', '192.168.244.10.:33060', 'grLocal', '10.101.34.92:33061'), '{}')')2019-09-30 03:27:49: Debug: MySQL Error-3098 (HY000): The table does not comply with the requirements by an external plugin.
2019-09-30 03:27:49: Debug: Dba.createCluster: The table does not comply with the requirements by an external plugin. (MySQL Error 3098)
It seemed the insert failed.
then i repeated this insert in Group Replicaiton, it still failed
mysql> INSERT INTO mysql_innodb_cluster_metadata.instances (host_id, replicaset_id, mysql_server_uuid, instance_name, role, addresses, attributes) VALUES (1, 1, '1c0b5286-b659-11e9-9082-000
c29f66609', '192.168.244.10.:3306', 'HA', json_object('mysqlClassic', '192.168.244.10.:3306', 'mysqlX', '192.168.244.10.:33060', 'grLocal', '10.101.34.92:33061'), '{}');ERROR 3098 (HY000): The table does not comply with the requirements by an external plugin.
It seems Foreign Keys with Cascading Constraints is not allowed in multi-primary mode when group_replication_enforce_update_everywhere_checks is on.
mysql> show create table mysql_innodb_cluster_metadata.instances\G
*************************** 1. row ***************************
Table: instances
Create Table: CREATE TABLE `instances` (
`instance_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`host_id` int(10) unsigned NOT NULL,
`replicaset_id` int(10) unsigned DEFAULT NULL,
`mysql_server_uuid` varchar(40) NOT NULL,
`instance_name` varchar(256) NOT NULL,
`role` enum('HA','readScaleOut') NOT NULL,
`weight` float DEFAULT NULL,
`addresses` json NOT NULL,
`attributes` json DEFAULT NULL,
`version_token` int(10) unsigned DEFAULT NULL,
`description` text,
PRIMARY KEY (`instance_id`),
UNIQUE KEY `mysql_server_uuid` (`mysql_server_uuid`),
UNIQUE KEY `instance_name` (`instance_name`),
KEY `host_id` (`host_id`),
KEY `replicaset_id` (`replicaset_id`),
CONSTRAINT `instances_ibfk_1` FOREIGN KEY (`host_id`) REFERENCES `hosts` (`host_id`) ON DELETE RESTRICT,
CONSTRAINT `instances_ibfk_2` FOREIGN KEY (`replicaset_id`) REFERENCES `replicasets` (`replicaset_id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.01 sec)
mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-----------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+-----------------+-------------+--------------+-------------+----------------+
| group_replication_applier | 1c0b5286-b659-11e9-9082-000c29f66609 | 192.168.244.10. | 3306 | ONLINE | PRIMARY | 8.0.17 |
| group_replication_applier | 404df93e-b659-11e9-9d75-000c297b8a24 | 192.168.244.20. | 3306 | ONLINE | PRIMARY | 8.0.17 |
| group_replication_applier | b8fe3d17-b658-11e9-9cdf-000c2901d210 | 192.168.244.30. | 3306 | ONLINE | PRIMARY | 8.0.17 |
+---------------------------+--------------------------------------+-----------------+-------------+--------------+-------------+----------------+
3 rows in set (0.00 sec)
mysql> show variables like '%group_replication_enforce_update_everywhere_checks%';
+----------------------------------------------------+-------+
| Variable_name | Value |
+----------------------------------------------------+-------+
| group_replication_enforce_update_everywhere_checks | ON |
+----------------------------------------------------+-------+
1 row in set (0.00 sec)
How to repeat:
as the above shows