如何在Mac OS上更改MySQL中innodb_buffer_pool_size的值?

时间:2011-04-17 22:23:00

标签: mysql innodb

我正在尝试增加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中的这个值有任何建议吗?还有其他建议或建议吗?

5 个答案:

答案 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 /文件夹中。

更新此变量的步骤:

  1. 装载终端。
  2. 输入cd /etc/
  3. sudo vi my.cnf
  4. 此文件应该已存在(如果不是,请使用sudo find / -name 'my.cnf' 2>1 - 这将隐藏错误并仅报告successfile文件位置。)
  5. 使用vi(m)找到行innodb_buffer_pool_size,按i开始进行更改。
  6. 完成后,按esc,shift +冒号并键入wq
  7. 利润(已完成)。

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