程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL配置文件路徑及‘The total number of locks exceeds the lock table size’問題

MySQL配置文件路徑及‘The total number of locks exceeds the lock table size’問題

編輯:MySQL綜合教程

在刪除mysql中的數據時,遇到報錯:

ERROR 1206 (HY000): The total  of locks exceeds the lock table size

查了查,發現是mysql配置裡 innodb_buffer_pool_size 這一個配置太小造成InnoDB在執行大批量數據的插入、刪除時會無法執行,檢查配置:

> show variables like '%_buffer%'+-------------------------+---------+
| Variable_name           | Value   |
+-------------------------+---------+
| bulk_insert_buffer_size | 8388608 |
| innodb_buffer_pool_size | 8388608 |

innodb_buffer_pool_size才8M,無語中,OP給配的果然不靠譜,設成256M,重啟MySQL

innodb_buffer_pool_size = 256M

然後再檢查配置項,發現innodb_buffer_pool_size 依然是8M,感覺很離奇,然後想到是不是配置文件沒有生效,所以檢查mysql引用的配置文件位置

執行

/home//bin/mysqld --verbose --help | grep -A 1 'Default options'

結果為

 options are read from the following files in the given order:
/etc/my.cnf /etc//my.cnf /home//etc/my.cnf ~/.my.cnf

逐個檢查my.cnf,發現根本就沒對應的文件,OP給配的果然不靠譜。。

把my.cnf復制到 /home/mysql/etc/ 路徑下,重啟mysql,檢查InnoDB變量

> show variables like '%_buffer%'+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| bulk_insert_buffer_size | 8388608   |
| innodb_buffer_pool_size | 268435456 |
...

配置生效,然後再執行之前的delete操作,刪除OK

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved