mysql_stmt_prepare failed! error(1461)Can't create more than

1461错误, mysql_stmt_prepare failed!

今天现场咨询我们问如何处理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 * from ENGINES ; -- 后台存储引擎信息数据的表

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

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

show status; -- 命令行查看

select * from GLOBAL_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 global max_prepared_stmt_count=124000;

Query OK, 0 rows affected (0.00 sec)

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2016-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏做全栈攻城狮

安卓开发基础教程-Android多界面应用程序开发

本套教程主要讲解安卓开发的相关知识,从基础到精通。一方面可以巩固自己所得,另一方面可以帮助对安卓开发感兴趣的朋友。

1214
来自专栏数据和云

深入剖析 - Oracle SCN机制详细解读

SCN可以说是Oracle中一个很基础的部分,但同时它也是一个很重要的。它是系统中维持数据的一致性和顺序恢复的重要标志,是数据库非常重要的一种数据结构。 SCN...

46510
来自专栏极客猴

Android设计模式之MVP

最近利用业余时间来深入学习MVP模式,我把自己对MVP模式的理解分享给大家,希望能给你理解MVP模式提供帮助。

1211
来自专栏IT大咖说

Oracle中最容易被忽略的那些实用特性

内容来源:2017 年 04 月 08 日,ITPUB管理版版主吕海波在“DBGeeK+PG数据库技术沙龙(4月杭州站)”进行《Oracle中最容易被忽略的那些...

1486
来自专栏移动开发面面观

Glide缓存探密Glide的缓存策略

1852
来自专栏Android先生

(新瓶旧酒)谷歌官方MVP项目学习--浅入源码

项目的目的是通过展示各种架构app的不同方式来帮助开发者解决架构问题。项目中通过不同的架构概念及方式实现了功能相同的app。你可以用示例来当做参考,或是干脆拿来...

1231
来自专栏技术小黑屋

Android中实现用户无感知处理后台崩溃

正所谓,要想没有bug,就一行代码也不写。App到了用户的手里,肯定是崩溃越少越好。Android中的崩溃处理和iOS不太一样,iOS崩溃通常是闪退,而安卓会出...

781
来自专栏向治洪

仿360静默安装

之前有很多朋友都问过我,在Android系统中怎样才能实现静默安装呢?所谓的静默安装,就是不用弹出系统的安装界面,在不影响用户任何操作的情况下不知不觉地将程序装...

4388
来自专栏yang0range

Activity详解(二)——异常情况下的生命周期分析

最近 无意当中看到一道面试题是关于Activity异常情况下的生命周期分析,感觉自己还有所欠缺,随即在书中寻找完整答案,特记录如下。

2094
来自专栏我就是马云飞

三大架构的比较

MVC 模型层(Model) 负责存储、检索、操纵来自数据库或者网络的数据 视图层(View) 用户界面,一般采用XML文件进行界面的描述 控制层(Contro...

21710

扫码关注云+社区

领取腾讯云代金券