-
Notifications
You must be signed in to change notification settings - Fork 7.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
启动正常,更新数据后报错 #494
Labels
Comments
一模一样的错,怎么解决? |
@kaikewang 这个问题的引起原因是创建表的SQL语句有“)"造成,比如枚举类型的字段,尽量避免,还有系统数据库中的有些字段是枚举的,也会报错,只要不监听这些库的变化就可以解决。 可以把实例下面的匹配所有库,修改为只匹配特定的库:
|
依赖的druid版本没更新吧?或者将tsdb的特性关闭也可以。 |
druid升级到1.1.8了,可以解决set类型的问题 |
@wingerx 如何关闭 tsdb特性? |
遇到了同样的问题。 |
升级druid版本已经接近 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
下载v1.0.26 alpha 1版本,根据网站上的说明修改配置文件;创建数据库:test;
启动程序,在test数据库里的test表插入一条数据,报错如下,错误信息里面显示的其他库里面的表。为什么我更新test库,会报其他库的错误?
[root@localhost canal]# tail -f logs/canal/canal.log
2018-01-17 23:05:53.957 [main] INFO com.alibaba.otter.canal.deployer.CanalLauncher - ## set default uncaught exception handler
2018-01-17 23:05:54.022 [main] INFO com.alibaba.otter.canal.deployer.CanalLauncher - ## load canal configurations
2018-01-17 23:05:54.023 [main] INFO com.alibaba.otter.canal.deployer.CanalLauncher - ## start the canal server.
2018-01-17 23:05:54.069 [main] INFO com.alibaba.otter.canal.deployer.CanalController - ## start the canal server[192.168.122.1:11111]
2018-01-17 23:05:54.591 [main] WARN o.s.beans.GenericTypeAwarePropertyDescriptor - Invalid JavaBean property 'connectionCharset' being accessed! Ambiguous write methods found next to actually used [public void com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.setConnectionCharset(java.lang.String)]: [public void com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.setConnectionCharset(java.nio.charset.Charset)]
2018-01-17 23:05:54.847 [main] ERROR com.alibaba.druid.pool.DruidDataSource - testWhileIdle is true, validationQuery not set
2018-01-17 23:05:55.127 [main] INFO com.alibaba.otter.canal.deployer.CanalLauncher - ## the canal server is running now ......
2018-01-17 23:05:55.968 [destination = example , address = /127.0.0.1:3306 , EventParser] WARN c.a.otter.canal.parse.inbound.mysql.MysqlEventParser - prepare to find start position just show master status
2018-01-17 23:06:09.929 [destination = example , address = /127.0.0.1:3306 , EventParser] WARN c.a.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta - parse faield : CREATE TABLE
columns_priv
(Host
char(60) COLLATE utf8_bin NOT NULL DEFAULT '',Db
char(64) COLLATE utf8_bin NOT NULL DEFAULT '',User
char(16) COLLATE utf8_bin NOT NULL DEFAULT '',Table_name
char(64) COLLATE utf8_bin NOT NULL DEFAULT '',Column_name
char(64) COLLATE utf8_bin NOT NULL DEFAULT '',Timestamp
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,Column_priv
set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',PRIMARY KEY (
Host
,Db
,User
,Table_name
,Column_name
)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges'
com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'es') CHARACTER SET utf8 NOT NULL DE', expect RPAREN, actual IDENTIFIER pos 479, line 8, column 62, token IDENTIFIER CHARACTER
at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:283) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.parser.SQLParser.accept(SQLParser.java:292) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlCreateTableParser.parseCreateTable(MySqlCreateTableParser.java:191) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseCreate(MySqlStatementParser.java:244) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:159) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:70) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:464) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.repository.SchemaRepository.console(SchemaRepository.java:295) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta.apply(MemoryTableMeta.java:69) ~[canal.parse-1.0.26-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.dumpTableMeta(DatabaseTableMeta.java:177) [canal.parse-1.0.26-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.rollback(DatabaseTableMeta.java:127) [canal.parse-1.0.26-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.processTableMeta(AbstractMysqlEventParser.java:72) [canal.parse-1.0.26-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:170) [canal.parse-1.0.26-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]
2018-01-17 23:06:09.930 [destination = example , address = /127.0.0.1:3306 , EventParser] WARN c.a.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta - parse faield : CREATE TABLE
db
(Host
char(60) COLLATE utf8_bin NOT NULL DEFAULT '',Db
char(64) COLLATE utf8_bin NOT NULL DEFAULT '',User
char(16) COLLATE utf8_bin NOT NULL DEFAULT '',Select_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Insert_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Update_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Delete_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Create_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Drop_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Grant_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',References_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Index_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Alter_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Create_tmp_table_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Lock_tables_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Create_view_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Show_view_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Create_routine_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Alter_routine_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Execute_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Event_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',Trigger_priv
enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',PRIMARY KEY (
Host
,Db
,User
),KEY
User
(User
)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Database privileges'
com.alibaba.druid.sql.parser.ParserException: syntax error, error in :''Y') CHARACTER SET utf8 NOT NULL DE', expect RPAREN, actual IDENTIFIER pos 225, line 5, column 31, token IDENTIFIER CHARACTER
at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:283) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.parser.SQLParser.accept(SQLParser.java:292) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlCreateTableParser.parseCreateTable(MySqlCreateTableParser.java:191) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseCreate(MySqlStatementParser.java:244) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:159) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:70) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:464) ~[druid-1.1.7-preview_0.jar:1.1.7-preview_0]
The text was updated successfully, but these errors were encountered: