mysql 报错10614_Sysbench 测试Mycat 连接丢失问题

我也遇到相同的问题,mycat1.6, sysbench1.1

sysbench /usr/local/share/sysbench/oltp_read_only.lua --mysql-user=test --mysql-password=test --mysql-port=8066 --mysql-host=127.0.0.1 --mysql-db=testdb --threads=1 run

sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

Running the test with following options:

Number of threads: 1

Initializing random number generator from current time

Initializing worker threads...

Threads started!

FATAL: mysql_stmt_execute() returned error 2013 (Lost connection to MySQL server during query) for query 'BEGIN'

FATAL: `thread_run' function failed: /usr/local/share/sysbench/oltp_common.lua:400: SQL error, errno = 2013, state = 'HY000': Lost connection to MySQL server during query

该命令直接运行在mysql上是没有问题的,mycat后端出现数组越界的提示:

use server prepare, sql: SELECT DISTINCT c FROM sbtest1 WHERE id BETWEEN ? AND ? ORDER BY c

2017-08-07 15:15:58.455 WARN [$_NIOREACTOR-2-RW] (io.mycat.net.NIOReactor$RW.run(NIOReactor.java:107)) - caught err:

java.lang.ArrayIndexOutOfBoundsException: 14

at io.mycat.backend.mysql.MySQLMessage.read(MySQLMessage.java:79) ~[Mycat-server-1.6-RELEASE.jar:?]

at io.mycat.net.mysql.ExecutePacket.read(ExecutePacket.java:117) ~[Mycat-server-1.6-RELEASE.jar:?]

at io.mycat.server.handler.ServerPrepareHandler.execute(ServerPrepareHandler.java:128) ~[Mycat-server-1.6-RELEASE.jar:?]

at io.mycat.net.FrontendConnection.stmtExecute(FrontendConnection.java:386) ~[Mycat-server-1.6-RELEASE.jar:?]

at io.mycat.net.handler.FrontendCommandHandler.handle(FrontendCommandHandler.java:99) ~[Mycat-server-1.6-RELEASE.jar:?]

at io.mycat.net.FrontendConnection.rawHandle(FrontendConnection.java:478) ~[Mycat-server-1.6-RELEASE.jar:?]

at io.mycat.net.FrontendConnection.handle(FrontendConnection.java:460) ~[Mycat-server-1.6-RELEASE.jar:?]

at io.mycat.net.AbstractConnection.onReadData(AbstractConnection.java:321) ~[Mycat-server-1.6-RELEASE.jar:?]

at io.mycat.net.NIOSocketWR.asynRead(NIOSocketWR.java:190) ~[Mycat-server-1.6-RELEASE.jar:?]

at io.mycat.net.AbstractConnection.asynRead(AbstractConnection.java:273) ~[Mycat-server-1.6-RELEASE.jar:?]

at io.mycat.net.NIOReactor$RW.run(NIOReactor.java:102) ~[Mycat-server-1.6-RELEASE.jar:?]

我用java写了个预处理的测试了下 SELECT DISTINCT c FROM sbtest1 WHERE id BETWEEN ? AND ? ORDER BY c这个语句,发现这个语句执行提示空指针错误。即使不使用预处理的语句,在mycat中直接执行这个语句也是有问题,测试如下:

mysql> select c from sbtest1 where id between 0 and 10700 group by c order by c;

ERROR 1105 (HY000): java.lang.NullPointerException

测试表的全部数据如下,表按k mod分片

mysql> select * from sbtest1;

+-------+-----+---+-----+

| id | k | c | pad |

+-------+-----+---+-----+

| 10608 | 4 | d | dd |

| 10611 | 7 | d | dd |

| 10614 | 10 | d | dd |

| 10700 | 11 | d | dd |

| 10607 | 3 | c | cc |

| 10610 | 6 | d | dd |

| 10613 | 9 | d | dd |

| 10615 | 111 | d | dd |

+-------+-----+---+-----+

8 rows in set (0.06 sec)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值