mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
fixed data
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#################################################
|
||||
# rds openapi binlog
|
||||
canal.instance.rds.open.url=https://rds.aliyuncs.com/
|
||||
canal.instance.rds.open.accesskey=
|
||||
canal.instance.rds.open.secretkey=
|
||||
|
||||
@@ -285,6 +285,8 @@ public class DatabaseTableMeta implements TableMetaTSDB {
|
||||
}
|
||||
|
||||
private boolean compareTableMetaDbAndMemory(MysqlConnection connection, final String schema, final String table) {
|
||||
TableMeta tableMetaFromMem = memoryTableMeta.find(schema, table);
|
||||
|
||||
TableMeta tableMetaFromDB = new TableMeta();
|
||||
tableMetaFromDB.setSchema(schema);
|
||||
tableMetaFromDB.setTable(table);
|
||||
@@ -292,15 +294,29 @@ public class DatabaseTableMeta implements TableMetaTSDB {
|
||||
ResultSetPacket packet = connection.query("desc " + getFullName(schema, table));
|
||||
tableMetaFromDB.setFields(TableMetaCache.parserTableMeta(packet));
|
||||
} catch (IOException e) {
|
||||
if (e.getMessage().contains("errorNumber=1146")) {
|
||||
logger.error("table not exist in db , pls check :" + getFullName(schema, table) + " , mem : "
|
||||
+ tableMetaFromMem);
|
||||
return false;
|
||||
}
|
||||
throw new CanalParseException(e);
|
||||
}
|
||||
|
||||
TableMeta tableMetaFromMem = memoryTableMeta.find(schema, table);
|
||||
boolean result = compareTableMeta(tableMetaFromMem, tableMetaFromDB);
|
||||
if (!result) {
|
||||
logger.error("compare failed . \n db : " + tableMetaFromDB + " \n mem : " + tableMetaFromMem);
|
||||
}
|
||||
String createDDL = null;
|
||||
try {
|
||||
ResultSetPacket packet = connection.query("show create table " + getFullName(schema, table));
|
||||
if (packet.getFieldValues().size() > 1) {
|
||||
createDDL = packet.getFieldValues().get(1);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// ignore
|
||||
}
|
||||
|
||||
logger.error("pls submit github issue, show create table ddl:" + createDDL + " , compare failed . \n db : "
|
||||
+ tableMetaFromDB + " \n mem : " + tableMetaFromMem);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,17 +14,14 @@ public class TableMetaCacheTest {
|
||||
|
||||
@Test
|
||||
public void testSimple() throws IOException {
|
||||
|
||||
MysqlConnection connection = new MysqlConnection(new InetSocketAddress("100.81.153.8", 3308),
|
||||
"jingwei",
|
||||
"jingwei");
|
||||
MysqlConnection connection = new MysqlConnection(new InetSocketAddress("127.0.0.1", 3306), "root", "hello");
|
||||
try {
|
||||
connection.connect();
|
||||
} catch (IOException e) {
|
||||
Assert.fail(e.getMessage());
|
||||
}
|
||||
|
||||
List<ResultSetPacket> packets = connection.queryMulti("show create table test.ljh_test; show create table test.user");
|
||||
List<ResultSetPacket> packets = connection.queryMulti("show create table test.ljh_test");
|
||||
String createDDL = null;
|
||||
if (packets.get(0).getFieldValues().size() > 0) {
|
||||
createDDL = packets.get(0).getFieldValues().get(1);
|
||||
|
||||
Reference in New Issue
Block a user