mysql中允许为空的命令
mysqlinnodb_buffer_pool_size⼤⼩设置问题
**
帝国cms火车头发布模块
mysql innodb_buffer_pool_size ⼤⼩设置问题
**
前⼏天测试环境起了个新的实例由于测试环境服务器配置较低打算把innodb_buffer_pool_size设置为500M,发⽣报错 ERROR 1231 (42000): Variable ‘innodb_buffer_pool_size’ can’t be set to the value of ‘536870912’
mysql是什么系统
,记录⼀下问题和解决的⽅案。
作者:zhou
mysql版本:5.7有理数多重符号的化简
看⼀下原来的innodb_buffer_pool_size为10G,和设置为500M的时候报错ERROR 1231 (42000): Variable
linux版是什么意思
‘innodb_buffer_pool_size’ can’t be set to the value of ‘536870912’。
查看了⼀下官⽅⽂档发现innodb_buffer_pool_size的⼤⼩设置和innodb_buffer_pool_chunk_size还有
innodb_buffer_pool_instances参数设定有关系。
innodb_buffer_pool_size 参数为innodb_buffer_pool的⼤⼩设置。
innodb_buffer_pool_chunk_size参数为InnoDB缓冲池块⼤⼩。
innodb_buffer_pool_instances参数为缓冲池实例的个数。
可以看到现在innodb_buffer_pool_chunk_size的⼤⼩为默认的⼤⼩128M,innodb_buffer_pool_instances的设置为 9 。
但是呢,innodb_buffer_pool_size的⼤⼩是怎么计算的?
innodb_buffer_pool_size = innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances * N(N为正整数),这个计算⽅式是什么意思呢为什么N要为正整数?,在启动Mysql的时候,Mysql会读取配置⽂件的innodb_buffer_pool_size 的⼤⼩,例如你设置为了10G innodb_buffer_pool_size/innodb_buffer_pool_chunk_size/innodb_buffer_pool_instances (10737418240/134217728/9) 要为正整数,否则系统会将你设置的innodb_buffer_pool_size调整为⼤于你设定的参数的最接近缓冲池块⼤⼩*缓冲池实例的个数的正整数倍数。
看图⽚就明⽩了如果你设置的buffer_pool⼤⼩不为 innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances的正整数的话系统会把你设置的参数调整为⼤于你设定的参数的正整数倍数。
注意了innodb_buffer_pool_chunk_size和innodb_buffer_pool_instances参 数在5.7版本和8.0版本都是不⽀持在线修改的,后⾯不知道会不会加上online 修改 。
介绍了⼀下innodb_buffer_pool_size的⼤⼩设定规则,还是没解决到⼀开始的问题,为什么设置⼤⼩为 500M 会报错呢?
其实和⼀开始介绍的innodb_buffer_pool_instances还有innodb_buffer_pool_chunk_size参数的设定有关系,系统默认的
innodb_buffer_pool_chunk_size为128M, innodb_buffer_pool_instances参数我设置的是9,两个参数相乘⼤于500M的设定,要设定buffer_pool⼤⼩为500M或者更⼩的话只需要在配置⽂件中调整innodb_buffer_pool_instances的个数或者promise怎么读音
innodb_buffer_pool_chunk_size的⼤⼩即可。
题外:
innodb_buffer_pool_instances参数的默认设置为1 最⼤设置为64 ,但是将innodb_buffer_pool_size⼤⼩设置为1GB或更⼤时,此选项才⽣效。
这篇写的是有关innodb_buffer_pool的⽂章,后⾯有机会的话会尝试写写深⼊点或者介绍更多有关innodb_buffer_pool的⽂
章,innodb_buffer_pool是mysql及其重要的⼀个参数。
我是zhou,如果需要转发请注明出处。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。