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

ana*_*rce 47 mysql innodb

我试图增加MySQL 5.1中innodb_buffer_pool_size的大小,因为我一直遇到以下错误,表明我的表锁空间已用完.

ERROR: The total number of locks exceeds the lock table size
Error
Code: 1206
Run Code Online (Sandbox Code Playgroud)

我已经阅读了文档,从我收集的内容中,我需要在/etc/my.cnf文件中更新innodb_buffer_pool_size.我目前的价值是8M.但是,即使在创建该文件并添加以下行来设置值之后,它也不会在MySQL中更新.

set-variable=innodb_buffer_pool_size=256M
Run Code Online (Sandbox Code Playgroud)

有什么建议我如何在我的Mac上调整MySQL的这个值?还有其他建议或建议吗?

neo*_*ble 63

将此添加到您的my.cnf

innodb_buffer_pool_size=1G
Run Code Online (Sandbox Code Playgroud)

重新启动你的mysql以使其生效

  • 在Ubuntu(很可能​​是其他Linux发行版)上,`my.cnf`文件位于`/ etc/mysql/my.cnf`而不是`/ etc/my.cnf`. (14认同)

Jor*_*ers 28

我必须将声明放在[mysqld]块下才能使它工作.否则,变化没有反映出来.我有REL分发.

  • 对不起,这是在上一个答案中的反馈意见.我指的是在[mysqld]部分中放置innodb_buffer_pool_size = 1G. (2认同)

100*_*111 18

在早期版本的MySQL(<5.7.5)中设置的唯一方法

'innodb_buffer_pool_size'

变量是通过将它写入[mysqld]部分下的my.cnf(对于linux)my.ini(对于windows):

[mysqld]

innodb_buffer_pool_size = 2147483648
Run Code Online (Sandbox Code Playgroud)

您需要重新启动mysql服务器才能使其生效.

更新:

从MySQL 5.7.5开始,可以使用SET语句动态设置innodb_buffer_pool_size配置选项,允许您在不重新启动服务器的情况下调整缓冲池的大小.例如:

mysql> SET GLOBAL innodb_buffer_pool_size=402653184;
Run Code Online (Sandbox Code Playgroud)

参考:https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-resize.html