如何在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:

  1. 负载terminal。
  2. 键入cd /etc/
  3. sudo vi my.cnf
  4. 这个文件应该已经存在(如果没有,请使用sudo find / -name 'my.cnf' 2>1 – 这将隐藏错误,并只报告成功文件的位置)。
  5. 使用vi(m)findinnodb_buffer_pool_size行,按i开始进行更改。
  6. 完成后,按esc,shift +冒号键入wq
  7. 利润(完成)。

就像声明的那样,

 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并查看该值是否已更新。