MySQL5.6解决‘’(1206)The total number of locks exceeds the lock table size‘’问题

       在往另一张表INSERT大数据量数据的时候,报出“The total number of locks exceeds the lock table size”这个问题,经查询相关资料,发现是因为innodb_buffer_pool_size不够大的原因,现解决方法步骤如下:

1.在进入MySQL客户端控制台输入如下命令:

show variables like "%_buffer%";

MySQL5.6解决‘’(1206)The total number of locks exceeds the lock table size‘’问题

一般情况下innodb_buffer_pool_size默认是134217728byte,也就是128M

我们尝试修改这个值,我根据需要设置为1G=1*1024*1024*1024=1073741824。

输入如下命令:

SET GLOBAL innodb_buffer_pool_size=1073741824;

但是报了如下的错误:

MySQL5.6解决‘’(1206)The total number of locks exceeds the lock table size‘’问题

别着急,那我们就来修改下mysql的配置文件就行,如下操作

2.找到mysql的配置文件,一般情况下放在/etc/my.cnf中,添加如下语句

innodb_buffer_pool_size=1073741824

MySQL5.6解决‘’(1206)The total number of locks exceeds the lock table size‘’问题

然后重启下mysql server:

$ service mysqld stop

$ service mysqld start

再用show variables like "%_buffer%";查看一下配置

MySQL5.6解决‘’(1206)The total number of locks exceeds the lock table size‘’问题

OK,修改完成

3.最后,我们再执行下INSERT语句,插入成功,问题解决~