如何设置全局innodb_buffer_pool_size?

Vai*_*ain 13 mysql

如何设置全局innodb_buffer_pool_sizemySQL变量?当我将其设置为时,system display我收到此错误:

ERROR 1238 (HY000): Variable 'innodb_buffer_pool_size' is a read only variable
Run Code Online (Sandbox Code Playgroud)

100*_*111 20

在早期版本的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)

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


Mah*_*til 8

innodb_buffer_pool_size

您应该在[mysqld]部分下将此变量值设置为:

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

并重启MySQL服务才能生效.

InnoDB缓冲池缓存数据和索引页面.您可以将此值设置为仅Innodb安装的可用内存的70-80%


小智 0

看这里innodb_buffer_pool_size 文档

在那里它说这个变量可以在选项文件(my.cnf)中设置,也可以在启动服务器时在命令行上设置。

还。我认为您无法将“系统显示”的值分配给该变量,因为它是数字。请参阅文档。