如何解决此MariaDB错误?=> 错误 1296 (HY000):从连接'Cannot retrieve error message'收到错误 122



有人知道我如何解决以下MariaDB CONNECT存储引擎错误吗?

错误1296(HY000(:从CONNECT 得到错误122"无法检索错误消息">

如果在使用CONNECT引擎JDBC表检索一两天的数据后从JDBC外部表中进行选择,则会出现上述错误。

如何调试更多?

我尝试了connect_xtrace=1023。输出将转到mysqld.log,但仍然没有太多信息可供进一步检查。还尝试更改JDBC驱动程序&还是那个样子。

我安装了MariaDB-server-10.3.21-1.el7.centos.x86_64.rpm&我使用MariaDB 10.3.21。

谢谢&顺致敬意,KH-

自解析。

总之,我意识到我尝试使用connect_xtrace=1023,但将其设置为全局变量&没有将其设置为会话变量,因此其效果不是立竿见影的。在将其设置为会话变量后,能够将其跟踪到内存分配失败。

在使用CONNECT引擎JDBC表检索数据一天或两天后,从CONNECT存储引擎JDBC外部表中选择时的错误为:"error 1296(HY000(:Get-error 122'Cannot retrieve error message'from CONNECT"。。。尝试创建CONNECT存储引擎JDBC外部表时的错误为:"error 1030(HY000(:Get-error 122"处理程序中的内部(未指定(错误"from storage engine CONNECT">

我最近刚刚注意到mysqld.log中也出现了以下几行:工作区:内存分配失败:malloc返回Null

所以尝试再次进行故障排除。。。

也许我以前使用过set global connect_xtrace=1023;其仅改变全局会话的设置而不改变当前会话的设置。因此,这一次尝试将会话connect_xtrace设置为1023,下面的相关日志条目开始出现。

所以关键是为会话设置connect_xtrace=1023。我的坏。

无论如何,mysqld.log条目现在有了更多信息:。。。新建CONNECT 0x7fc46403de80,表:mssql_CURRENCY_RATE打开:name=/_TMP_D/mssql_CURRENCY_RATE模式=2测试=18 PlugInit:语言="Null"SareaAlloc:内存分配失败:malloc返回Null Delete CONNECT 0x7fc46403de80,表:mssql_CURRENCY_RATE,xp=(nil(计数=0。。。PlugInit:Language="Null"SareaAlloc:内存分配失败:malloc返回Null New CONNECT 0x7fc46403de80,表:mssql_CURRENCY_RATE打开:name=/_TMP_D/mssql_CURRENCY_RATE模式=2测试=18。。。

因此,尝试设置一个低得多的connect_work_size值:64MB(默认值(,结果又成功了!没有更多错误。

因此,得出的结论似乎是,CONNECT引擎在作为mysqld&操作系统使用更多&随着时间的推移,内存会增加。

然后尝试将connect_work_size设置为1GB&再次尝试选择,仍然有效。又增加了1GB&再次选择,再重复几次。从mysqld.log开始注意到为connect_work_size设置的内存在一段时间后停止被跟踪,&使用最后一个成功的值。(这似乎是根据文件(。

由于我还没有找到关于将connect_work_size设置为多少的更详细的指南,所以我制作了一个存储过程,在使用connect引擎之前,我将调用该过程来设置connect_work_size,尝试我想要的大小,然后尝试connect引擎,如果失败,则尝试较小的大小,并尝试connect发动机,如果失败则重复,直到一切正常。

如果:a(connect_work_size以类似于innodb_buffer_pool_instances、innodb_buffer_pool_chunk_size、innodd_buffer_pool_size的方式实现,那就太好了。c( 有更详细的文件;即:如果近似的表格行大小是xxx&在内存中任何一个时间点查询的行都是yyy,那么connect_work_size必须是(xxx*yyy(*1.1。

相关内容