如何在Mac OS上的MySQL中更改innodb_buffer_pool_size的值?
我试图增加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。 但是,即使在创build该文件并添加以下行来设置它在MySQL中不更新的值。
set-variable=innodb_buffer_pool_size=256M
有什么build议,我怎么能在我的Mac上调整MySQL的这个值? 任何其他意见或build议?
添加到你的my.cnf
innodb_buffer_pool_size=1G
重新启动你的MySQL,使其生效
我不得不把这个语句放在[mysqld]块中,以使其工作。 否则,变化没有反映出来。 我有一个REL分配。
在早期版本的MySQL(<5.7.5)中设置唯一的方法
'innodb_buffer_pool_size'
variables是把它写到my.cnf(for linux)和my.ini(for windows)下的[mysqld]部分:
[mysqld] innodb_buffer_pool_size = 2147483648
你需要重新启动你的mysql服务器才能生效。
更新:
从MySQL 5.7.5开始,可以使用SET语句dynamic设置innodb_buffer_pool_sizeconfiguration选项,从而允许您在不重新启动服务器的情况下调整缓冲池的大小。 例如:
mysql> SET GLOBAL innodb_buffer_pool_size=402653184;
参考: http : //dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-online-resize.html
对于MySQL的标准OS X安装,您可以在/ etc /文件夹中findmy.cnf。
步骤来更新这个variables:
- 负载terminal。
- 键入
cd /etc/
。 -
sudo vi my.cnf
。 - 这个文件应该已经存在(如果没有,请使用
sudo find / -name 'my.cnf' 2>1
– 这将隐藏错误,并只报告成功文件的位置)。 - 使用vi(m)find
innodb_buffer_pool_size
行,按i
开始进行更改。 - 完成后,按esc,shift +冒号键入
wq
。 - 利润(完成)。
就像声明的那样,
innodb_buffer_pool_size=50M
按照其他预定义variables的约定,确保等号两边没有空格。
然后运行
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
,请运行show variables
并查看该值是否已更新。