我正在尝试增加MySQL 5.1中innodb_buffer_pool_size的大小,因为我一直遇到以下错误,表明我已经用尽了表锁的空间。
ERROR: The total number of locks exceeds the lock table size
Error
Code: 1206
我已经阅读了文档,从我收集的内容中,我需要更新/etc/my.cnf文件中的innodb_buffer_pool_size。我目前的价值是8M。但是,即使在创建该文件并添加以下行来设置值之后,它也不会在MySQL中更新。
set-variable=innodb_buffer_pool_size=256M
对于如何在我的Mac上调整MySQL中的这个值有任何建议吗?还有其他建议或建议吗?
答案 0 :(得分:60)
将此添加到您的my.cnf
innodb_buffer_pool_size=1G
重新启动你的mysql以使其生效
答案 1 :(得分:28)
我必须将声明置于[mysqld]块下才能使其正常工作。否则,变化没有反映出来。我有REL分发。
答案 2 :(得分:12)
在早期版本的 MySQL(< 5.7.5)中设置的唯一方法
'innodb_buffer_pool_size'
变量是将其写入[mysqld]部分下的 my.cnf(对于linux)和 my.ini(对于Windows):
[mysqld]
innodb_buffer_pool_size = 2147483648
您需要重新启动mysql服务器才能使其生效。
从MySQL 5.7.5开始,innodb_buffer_pool_size配置选项 可以使用SET语句动态设置,允许您调整大小 缓冲池而不重新启动服务器。例如:
mysql> SET GLOBAL innodb_buffer_pool_size=402653184;
参考:https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-resize.html
答案 3 :(得分:3)
对于MySQL的标准OS X安装,您会发现my.cnf位于/ etc /文件夹中。
更新此变量的步骤:
cd /etc/
。sudo vi my.cnf
。sudo find / -name 'my.cnf' 2>1
- 这将隐藏错误并仅报告successfile文件位置。)innodb_buffer_pool_size
,按i
开始进行更改。wq
。答案 4 :(得分:1)
如上所述,
innodb_buffer_pool_size=50M
遵循其他预定义变量的惯例,确保等号两侧没有空格。
然后运行
sudo service mysqld stop
sudo service mysqld start
注意强>
有时,例如在Ubuntu上,MySQL守护进程名为mysql
而不是mysqld
我发现运行/etc/init.d/mysqld restart
并不总是有效,您可能会收到类似
Stopping mysqld: [FAILED]
Starting mysqld: [ OK ]
要查看是否已设置变量,请运行show variables
并查看该值是否已更新。