增加InnoDB缓冲池大小

我很难设置MySql InnoDB的缓冲池大小和日志文件大小。 我远离MySql的专家,但一直在阅读,似乎要改变这一点,我只是将这些行添加到我的/etc/mysql/my.cnf

# Set buffer pool size to 50-80% of your computer's memory innodb_buffer_pool_size=2048M innodb_additional_mem_pool_size=512M # # Set the log file size to about 25% of the buffer pool size innodb_log_file_size=256M innodb_log_buffer_size=128M 

服务器有大约7GB的内存,也运行一个Web服务器,所以我认为这些数字应该是一个好的起点。 保存并重新启动服务器后,但似乎并没有变化已经生效。 我试着运行Mysqltuner,报告缓冲池仍然在16.0M。 任何想法我做错了什么? 让我知道如果你想看到更多的configuration文件。 谢谢!

确保这些行在[mysqld]部分内,即在[mysqld]而在[mysqldump]类的任何其他[section]之前。

检查你的MySQL错误日志的信息 – 最有可能位于/var/lib/mysql – 这是一个32位系统与bigmem内核? 如果是这样的话,MySQL的地址不能超过2GB。

此外 – 你会想从MySQL本身确认缓冲池的大小 – 16MB听起来有点closures,考虑到默认是128M。 您可以通过在该服务器的MySQL会话中input'SHOW VARIABLES LIKE'innodb_buffer_pool_size'来确认。 结果以字节为单位。

可能是你用–no-defaults或(-no-defaults)启动mysql,导致它根本不加载configuration。 这也是–defaults-file(或-default-file,不知道),这会导致它加载一个特定的configuration。 另外检查一下是否与你编辑的configuration不同。

你可以尝试从以下开始:

 --innodb_buffer_pool_size=2048M --innodb_log_buffer_size=512M 

或者已经开始使用的参数,看看其中的一个是否会导致它忽略configuration。

在我的情况下,问题是innodb_buffer_pool_instances

由于我正在减lessinnodb_buffer_pool_size ,所以每个实例的容量都不到1GB,所以最后四舍五入。

当我还减less了实例 ,它最终改变了游泳池的大小