LollipopGo开源游戏服务器框架--数据库错误问题

栏目: 数据库 · 发布时间: 5年前

内容简介:游戏服务器运行了几天,报错: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语言社区论坛 :

www.Golang.Ltd

LollipopGo游戏服务器地址:

https://github.com/Golangltd/LollipopGo

社区视频课程课件GIT地址:

https://github.com/Golangltd/codeclass
LollipopGo开源游戏服务器框架--数据库错误问题

Golang语言社区


以上所述就是小编给大家介绍的《LollipopGo开源游戏服务器框架--数据库错误问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Convergence Culture

Convergence Culture

Henry Jenkins / NYU Press / 2006-08-01 / USD 30.00

"Convergence Culture" maps a new territory: where old and new media intersect, where grassroots and corporate media collide, where the power of the media producer, and the power of the consumer intera......一起来看看 《Convergence Culture》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试