开发者社区> 问答> 正文

mysql和canal部署在腾讯云上遇见的问题;

现在 在腾讯云上部署了mysql,canal服务也是在腾讯云上的。启动canal server后的报错信息如下。 也让运维家了权限和canal的账号。

2018-07-10 11:03:29.165 [Druid-ConnectionPool-Create-525230202] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:h2:../conf/yunjiradartrace899/h2;CACHE_SIZE=1000;MODE=MYSQL;, errorCode 28000, state 28000 org.h2.jdbc.JdbcSQLException: Wrong user name or password [28000-196] at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) ~[h2-1.4.196.jar:1.4.196] at org.h2.message.DbException.get(DbException.java:179) ~[h2-1.4.196.jar:1.4.196] at org.h2.message.DbException.get(DbException.java:155) ~[h2-1.4.196.jar:1.4.196] at org.h2.message.DbException.get(DbException.java:144) ~[h2-1.4.196.jar:1.4.196] at org.h2.engine.Engine.validateUserAndPassword(Engine.java:336) ~[h2-1.4.196.jar:1.4.196] at org.h2.engine.Engine.createSessionAndValidate(Engine.java:162) ~[h2-1.4.196.jar:1.4.196] at org.h2.engine.Engine.createSession(Engine.java:137) ~[h2-1.4.196.jar:1.4.196] at org.h2.engine.Engine.createSession(Engine.java:27) ~[h2-1.4.196.jar:1.4.196] at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:354) ~[h2-1.4.196.jar:1.4.196] at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:116) ~[h2-1.4.196.jar:1.4.196] at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:100) ~[h2-1.4.196.jar:1.4.196] at org.h2.Driver.connect(Driver.java:69) ~[h2-1.4.196.jar:1.4.196] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1513) ~[druid-1.1.9.jar:1.1.9] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578) ~[druid-1.1.9.jar:1.1.9] at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2466) ~[druid-1.1.9.jar:1.1.9]

确定 账号密码是没有错的。

原提问者GitHub用户mjjian0

展开
收起
绿子直子 2023-05-09 08:23:50 183 0
1 条回答
写回答
取消 提交回答
  • 先关闭一下tablemeta tsdb的能力, 这个报错主要是本地使用H2的错误, 如果有对H2比较了解的可以尝试定位或者修复一下

    h2作为table ddl的历史版本存储时,会基于H2的默认jdbc配置

    canal.instance.tsdb.dir=${canal.file.data.dir:../conf}/${canal.instance.destination:} canal.instance.tsdb.url=jdbc:h2:${canal.instance.tsdb.dir}/h2;CACHE_SIZE=1000;MODE=MYSQL; canal.instance.tsdb.dbUsername=canal canal.instance.tsdb.dbPassword=canal

    解读一下,就是第一次时会创建conf/$instance$/$instance.mv.db,并设置访问密码为canal/canal,如果第二次重新打开时会校验xx.mv.db是否有多进程同时使用(会出现java.lang.IllegalStateException: The file is locked),也会校验本次的访问密码是否和第一次创建时相同

    如果真遇到一些莫名其妙的问题,万能的解决办法:删除conf/对应的xx.mv.db,会重新初始化一个h2本地文件

    原回答者GitHub用户agapple

    2023-05-09 19:38:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像