sqlyog打开mycat表会报异常:
select * from TESTDB
.company
limit 0, 30;
前面加了数据库名就不能访问了,只能用 sql 访问。
原因是因为mycat把TESTDB这个数据库名称也传到了mysql中,但是mysql里面是不存在这个数据库的,就报异常了( 调试的结果,个人分析的结论是这个,不一定就对)
navicat工具打开不会有这种异常,因为它发送的是select * from company
limit 0, 30;就是这两个工具的差异,当然对这一条查询还会带上其他的sql语句,喜欢捣鼓的可以调试下,就是下面介绍的会输出到控制台上
重点:写过一个默认的拦截器,或者直接在源码上修改
复制io.mycat.server.interceptor.impl.DefaultSqlInterceptor.java重命名成一个新的类(我的是me.MySqlInterceptor.java),或者直接在这个类上修改:
interceptSQL()方法里面第一行添加:
System.out.println(“*我拦截的sql: “+sql+” 类型: “+sqlType);
if(sqlType==7||sqlType==9){//暂时就发现这两个类型时sqlyog会报错,刚开始学,还没发现别的
SubSql ss=new