在往另一張表INSERT大數據量數據的時候,報出“The total number of locks exceeds the lock table size”這個問題,經查詢相關資料,發現是因為innodb_buffer_pool_size不夠大的原因,現解決方法步驟如下:
1.在進入MySQL客戶端控制台輸入如下命令:
show variables like "%_buffer%";
一般情況下innodb_buffer_pool_size默認是134217728byte,也就是128M
我們嘗試修改這個值,我根據需要設置為1G=1*1024*1024*1024=1073741824。
輸入如下命令:
SET GLOBAL innodb_buffer_pool_size=1073741824;
但是報了如下的錯誤:
別着急,那我們就來修改下mysql的配置文件就行,如下操作
2.找到mysql的配置文件,一般情況下放在/etc/my.cnf中,添加如下語句
innodb_buffer_pool_size=1073741824
然后重啟下mysql server:
$ service mysqld stop
$ service mysqld start
再用show variables like "%_buffer%";查看一下配置
OK,修改完成
3.最后,我們再執行下INSERT語句,插入成功,問題解決~