使用mycat的本地时间戳方式生成全局序列,并利用生成的全局序列插入person表,在mycat端插入后,显示成功,但是在mysql底层物理库上person表中查询不到插入的记录,同时,在mycat端也有时能查到有时查不到,在插入多条后,再次查询,会发现查询结果会出现两种情况,且两种情况的合集并不等同于插入总数(也就是虽然mycat端提示插入成功,但是实际上可能有的漏插入了),我知道这很玄学,所以请知道的或者有类似情况的大佬分享一下心得,谢谢了,附上插入结果图

解决方案 »

  1.   

    而且我确定自己的scheme配置文件没有问题,而且每次重启mycat后,以前插入的结果也就再也查询不出来了,感觉mycat这做的也太水了吧,以后谁敢用啊
      

  2.   

    看看mycat日志等有没有什么错误信息
      

  3.   

    报错的话在启动的时候,报了(io.mycat.sqlengine.SQLJob.connectionError(SQLJob.java:114)) - can't get connection for sql :select user()这个错误。而且在运行的时候, reason:program err:java.io.IOException: 你的主机中的软件中止了一个已建立的连接。
      

  4.   

    这个错误最多,err:java.sql.SQLNonTransientException:  find no Route:SELECT st.* FROM performance_schema.events_statements_current st JOIN performance_schema.threads thr ON thr.thread_id = st.thread_id WHERE thr.processlist_id = 230
    java.sql.SQLNonTransientException:  find no Route:SELECT st.* FROM performance_schema.events_statements_current st JOIN performance_schema.threads thr ON thr.thread_id = st.thread_id WHERE thr.processlist_id = 230
    at io.mycat.route.parser.druid.impl.DruidSelectParser.tryRoute(DruidSelectParser.java:437) ~[Mycat-server-1.6-RELEASE.jar:?]
    at io.mycat.route.parser.druid.impl.DruidSelectParser.changeSql(DruidSelectParser.java:287) 
      

  5.   

    1:注意版本;mycat对mysql服务版本有要求2:配置主从的话,应该看是否服务之间能正常连通3:mycat只是一个服务;不存在数据的存储,所以数据还是在你的mysql数据库服务里,去里面查找