mysql prepare max_mysql_stmt_prepare failed! error(1461)Can\'t create more than max_ -jerry_ye-China...

今天现场咨询我们问如何处理1461错误。

mysql_stmt_prepare failed! error(1461)Can't create more than max_prepared_stmt_count statements (current value: 16382)

给出的回复如下:

max_prepared_stmt_count参数限制了同一时间在mysqld上所有session中prepared 语句的上限。

它的取值范围为“0 - 1048576”,默认为16382。

mysql对于超出max_prepared_stmt_count的prepare语句就会报1461的错误。

对于现场而言,可以先将这个值调大。

一般而言,默认值应该是足够用的,因为现场的并发其实没有那么的大。

一个可能的原因是应用端那边没有关闭prepared的语句。

直连后端master执行如下命令

mysql> show global status like ‘com_stmt%’;

查看如下3个参数值:

Com_stmt_close             prepare语句关闭的次数

Com_stmt_execute           prepare语句执行的次数

Com_stmt_prepare           prepare语句创建的次数

请确认Com_stmt_close的值是否接近于Com_stmt_prepare。

information_schema很有用,大家可以去这里面查看一些db的基础信息。

use information_schema;  -- mysql的基础信息库

select * fromENGINES;  -- 后台存储引擎信息数据的表

show engines;   -- mysql窗口界面的命令

select * fromGLOBAL_STATUS;   --  当前运行的全局的status参数信息数据

show status;  -- 命令行查看

select * fromGLOBAL_VARIABLES;   -- 当前的全局的参数存储的数据

show variables;  -- 命令行查看

sysbench 2000并发读写 报错如下:FATAL: mysql_stmt_prepare() failed

FATAL: MySQL error: 1461 "Can't create more than max_prepared_stmt_count statements (current value: 16382)"

FATAL: thread#1638: failed to prepare statements for test

查看值

mysql> show global status like 'com_stmt%';

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

| Variable_name           | Value    |

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

| Com_stmt_close          | 15000    |

| Com_stmt_execute        | 11024051 |

| Com_stmt_fetch          | 0        |

| Com_stmt_prepare        | 124200   |

| Com_stmt_reprepare      | 0        |

| Com_stmt_reset          | 0        |

| Com_stmt_send_long_data | 0        |

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

mysql> set global Com_stmt_close=124000;

ERROR 1193 (HY000): Unknown system variable 'Com_stmt_close'

mysql> show global variables like 'com_stmt%';

Empty set (0.00 sec)

mysql> show global variables like '%stmt%';

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

| Variable_name              | Value                |

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

| binlog_stmt_cache_size     | 32768                |

| max_binlog_stmt_cache_size | 18446744073709547520 |

| max_prepared_stmt_count    | 16382                |

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

3 rows in set (0.00 sec)

mysql> set globalmax_prepared_stmt_count=124000;

Query OK, 0 rows affected (0.00 sec)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值