SELECT a.TABLE_SCHEMA,a.TABLE_NAME,a.COLUMN_NAME,a.COLUMN_TYPE
FROM
(SELECT * FROM INFORMATION_SCHEMA.`COLUMNS` WHERE TABLE_SCHEMA IN ('db1')) AS a
LEFT JOIN
(SELECT * FROM INFORMATION_SCHEMA.`COLUMNS` WHERE TABLE_SCHEMA IN ('db2')) AS b
ON a.COLUMN_NAME = b.COLUMN_NAME AND a.TABLE_NAME = b.TABLE_NAME AND a.COLUMN_TYPE = b.COLUMN_TYPE
WHERE b.COLUMN_NAME IS NULL
UNION
SELECT a.TABLE_SCHEMA,a.TABLE_NAME,a.COLUMN_NAME,a.COLUMN_TYPE
FROM
(SELECT * FROM INFORMATION_SCHEMA.`COLUMNS` WHERE TABLE_SCHEMA IN ( 'db2')) AS a
LEFT JOIN
(SELECT * FROM INFORMATION_SCHEMA.`COLUMNS` WHERE TABLE_SCHEMA IN ('db1')) AS b
ON a.COLUMN_NAME = b.COLUMN_NAME AND a.TABLE_NAME = b.TABLE_NAME AND a.COLUMN_TYPE = b.COLUMN_TYPE
WHERE b.COLUMN_NAME IS NULL;