// If you have 2 servers with identical database structure, and some of the tables have different engine type, then create a federated table to connect to the original server and compare the engines type with the current table's engine.
1
2 CREATE TABLE test.`TABLES2` (
3 `TABLE_CATALOG` varchar(512) default NULL,
4 `TABLE_SCHEMA` varchar(64) NOT NULL default '',
5 `TABLE_NAME` varchar(64) NOT NULL default '',
6 `TABLE_TYPE` varchar(64) NOT NULL default '',
7 `ENGINE` varchar(64) default NULL,
8 `VERSION` bigint(21) default NULL,
9 `ROW_FORMAT` varchar(10) default NULL,
10 `TABLE_ROWS` bigint(21) default NULL,
11 `AVG_ROW_LENGTH` bigint(21) default NULL,
12 `DATA_LENGTH` bigint(21) default NULL,
13 `MAX_DATA_LENGTH` bigint(21) default NULL,
14 `INDEX_LENGTH` bigint(21) default NULL,
15 `DATA_FREE` bigint(21) default NULL,
16 `AUTO_INCREMENT` bigint(21) default NULL,
17 `CREATE_TIME` datetime default NULL,
18 `UPDATE_TIME` datetime default NULL,
19 `CHECK_TIME` datetime default NULL,
20 `TABLE_COLLATION` varchar(64) default NULL,
21 `CHECKSUM` bigint(21) default NULL,
22 `CREATE_OPTIONS` varchar(255) default NULL,
23 `TABLE_COMMENT` varchar(80) NOT NULL default ''
24 )
25 ENGINE=FEDERATED DEFAULT CHARSET=latin1
26 CONNECTION='mysql://root@172.172.172.172/information_schema/TABLES';
27
28 SELECT b.TABLE_SCHEMA as remote_database, b.TABLE_NAME as remote_tableName, b.ENGINE as remote_engine, a.ENGINE AS local_engine
29 FROM test.TABLES2 AS a INNER JOIN information_schema.TABLES as b
30 ON a.TABLE_SCHEMA = b.TABLE_SCHEMA AND a.TABLE_NAME = b.TABLE_NAME AND a.ENGINE != b.ENGINE;