5.7版本的mysql错误1206 - The total number of locks exceeds the lock table size

当数据库的数据量比较大(上千万条数据)时,在对数据库进行增删操作时,出现了错误:1206 - The total number of locks exceeds the lock table size

原因是:数据库现有的缓存池内存较小导致的。

解决方法如下:

首先找到并打开MYSQL的命令行控制台

输入password,就是localhost的密码,打开本地数据

然后输入:show variables like "%_buffer%";               查找到缓存池的内存信息:

根据查到的信息,换算出缓存池的内存只有8M,只是导致数据值操作失败的根本原因,

接下来对缓存池的内存进行调整:

执行:SET GLOBAL innodb_buffer_pool_size=1073741824;

其中的1073741824是1G内存的换算结果。此时显示的结果为“0行被改动”,也就是没有做出修改。

再次执行:show variables like "%_buffer%";    这个操作

可以看到,缓存池的内存被修改了。然后回到客户端或者Navicat执行原来的sql语句。

执行成功!!!!问题暂时解决。

但是如果重新启动mysql  Notifier,那么上述的操作结果将无效,还需要再次进行上述的操作,尝试过几次,暂时没找到一劳永逸的方法。

如果有大神,希望指点一下!!!!!!!!!!!


版权声明:本文为dongshaoxia0原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。