Mysql对大数据做操作时服务自动停止,原来是因为innodb buffer pool太小导致

1.问题描述

最近在对一个超过1g的数据做update时,执行语句后,发现过了很久会报错:
2003 - Can’t connect to MySQL server on ‘localhost’(10061)
同时数据并没有实现修改。看了很多关于2003错误的文章,都没有解决问题。最后我通过查错误日志排查了问题,发现是由于mysql数据库的innodb buffer pool的相关参数设置错误导致的。

2.查找错误日志

2.1 重启服务

当出现这个错误的时候,Mysql服务已经关闭了。这时需要重启服务。这里不同系统的操作方法不同,就不再赘述。

2.2 查找错误日志的文件位置和文件名

首先查看自己的Mysql数据库的数据存储的物理地址
在Mysql客户端中完成操作:
mysql> show global variables like “%datadir%”;
在这里插入图片描述
找到上述地址后,在客户端内完成操作:
mysql> show variables like “log_error”;
这样能找到错误日志的文件名

在第一步获得的目录下找到后缀名为err的文件,可以用文本编辑器打开,找到最近的关键字为[ERROR]的记录,就可以大概看到最近的错误详细信息了。

另外关于如何更改Mysql的数据库物理地址,可以参考这篇:
查看及更改MySQL数据库物理文件存放的位置
这样可以释放一些C盘的空间

注意,在未修改过Data文件夹路径的情况下,在Data文件夹下同目录有my.ini。这个文件是记录Mysql各种运行参数的,后面的修改也会用到它。

2.3 定位错误信息及解决

我发现我的错误信息和这篇文章说的一样
[ERROR] [FATAL] InnoDB: Over 95 percent of the buffer pool is occupied by lock heaps or the adaptive
于是顺藤摸瓜,查了如何修改my.ini下的参数
mysql中如何配置innodb buffer pool的大小

注意:我在我的my.ini中编辑时,发现一开始是有innodb_buffer_pool_instances和innodb_buffer_pool_size的,但是没有
innodb_buffer_pool_chunk_size,所以我是在原来基础上做的修改。注意在文件内搜索一下再做更改,防止添加重复语句。

3.修改完成

修改完my.ini的参数后,需要再重启mysql的服务,这里可自行查询操作方法。之后我再做update语句,发现终于成功啦~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值