内容简介:游戏服务器运行了几天,报错: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
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Fluent Python
Luciano Ramalho / O'Reilly Media / 2015-8-20 / USD 39.99
Learn how to write idiomatic, effective Python code by leveraging its best features. Python's simplicity quickly lets you become productive with it, but this often means you aren’t using everything th......一起来看看 《Fluent Python》 这本书的介绍吧!