内容简介:游戏服务器运行了几天,报错:can't create more than max_prepared_stmt_count statements (current value: 163LollipopGo 服务器重启流程解决以上问题
游戏服务器运行了几天,报错:
can't create more than max_prepared_stmt_count statements (current value: 163
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)
LollipopGo 服务器重启流程解决以上问题
// 服务器重启流程 mysql -uroot -p /etc/my.cnf service mysqld start service httpd start redis-server 6379.conf // 查看最大链接 show variables like "max_connections"; >mysql -uuser -ppassword(命令行登录MySQL) mysql>show variables like 'max_connections';(查可以看当前的最大连接数) msyql>set global max_connections=1000;(设置最大连接数为1000,可以再次查看是否设置成功) mysql>exit(推出) // 超时时间 查看mysql server超时时间: msyql> show global variables like '%timeout%'; 设置mysql server超时时间(以秒为单位): msyql> set global wait_timeout=10; msyql> set global interactive_timeout=10;
每天坚持学习1小时 Go 语言,大家加油,我是彬哥,下期见!如果文章中不同观点、意见请文章下留言或者关注下方订阅号反馈!
社区交流群:221273219
Golang语言社区论坛 :
LollipopGo游戏服务器地址:
https://github.com/Golangltd/LollipopGo
社区视频课程课件GIT地址:
https://github.com/Golangltd/codeclassGolang语言社区
以上所述就是小编给大家介绍的《LollipopGo开源游戏服务器框架--数据库错误问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 开源 | Hippy:腾讯开源的跨端开发框架
- WeGeek | WePY 开源框架
- 开源 | vnpy:基于 Python 的开源量化交易平台开发框架
- 优秀开源框架的扩展机制实现
- 开源Botnet框架Byob分析
- 滴滴开源小程序框架 Mpx
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python学习手册(第4版)
[美] Mark Lutz / 李军、刘红伟 / 机械工业出版社 / 2011-4 / 119.00元
Google和YouTube由于Python的高可适应性、易于维护以及适合于快速开发而采用它。如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python专家Mark Lutz的著名培训课程编写而成。 《Python学习手册:第......一起来看看 《Python学习手册(第4版)》 这本书的介绍吧!