使用mysql将同一数据库的表格数据(根据条件筛选的部分数据)转换到当前数据库下另一个表格中,使用了插入和删除操作,由于数据量较大导致报错:‘’The total number of locks exceeds the lock table size‘’。这里使用的版本为MySQL5.7,经过查询相关解决办法,根据自己的MySQL版本将解决方法总结如下:

1.打开MySQL命令行控制台

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

此时需要注意,确保你的MySQL Notifier处于工作状态,否则打开命令行将闪退。

2.输入密码和相关命令

在进入MySQL命令行控制台输入如下命令:

show variables like "%_buffer%";

结果显示如下:

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

以上结果表明默认状态下innodb_buffer_pool_size=8M,我们尝试修改这个值,比如将其设置为1G=1*1024*1024*1024。输入如下命令:

SET GLOBAL innodb_buffer_pool_size=1073741824;

设置后返回结果:

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

输入\quit命令退出,并且关掉MySQL Notifier,(右键单击图标,有相关操作)。注意,一定要正确退出命令行控制台和MySQL Notifier,否则修改是没有变化的。如果一次修改不成功可再次尝试。

3.查看修改结果

重新启动MySQL Notifier,并查看结果。此时再进行大批量数据插入错误消失。

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



相关文章: