在 MySQL 5.7 中清空表时,提示:1206 – The total number of locks exceeds the lock tablesize

1、在 MySQL 5.7 中清空表时,表中有 300 多万条记录,清空至还剩下 200 多万记录时,提示:1206 – The total number of locks exceeds the lock tablesize。如图1

图1

2、参考: THE TOTAL NUMBER OF LOCKS EXCEEDS THE LOCK TABLE SIZE

3、这个问题可以通过设置 MySQL 变量“innodb_buffer_pool_size”的较高值来解决。 innodb_buffer_pool_size 的默认值为 8,388,608。在 Windows 中的位置在:”C:\ProgramData\MySQL\MySQL Server 5.7\my.ini” 。

4、编辑 C:\ProgramData\MySQL\MySQL Server 5.7\my.ini ,

# innodb_buffer_pool_size=8M
innodb_buffer_pool_size=16M

5、在计算机管理 – 服务和应用程度 – 服务,找到 MySQL57,重新启动。如图2

图2

6、Windows无法停止MySQL57服务(位于本地计算机上)。错误1053:服务没有及时响应启动或控制请求。最终决定重启计算机。如图3

图3

7、在 MySQL 5.7 中再次清空表,清空成功。如图4

图4

永夜