我有以下环境:
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
# rpm -qa | grep ^mysql-community-
mysql-community-common-5.5.48-2.el7.x86_64
mysql-community-libs-5.5.48-2.el7.x86_64
mysql-community-client-5.5.48-2.el7.x86_64
mysql-community-release-el7-5.noarch
mysql-community-server-5.5.48-2.el7.x86_64
#
我需要调整innodb_buffer_pool_size
的值mysql
,但是上次当我尝试这样做时,有些事情发生了,我最终从备份中恢复了数据库(数据库约为 100G,所以理想情况下我不想再走那条路了。
我上次采取的步骤:
- 停止 mysqld
- 调整 my.cnf 中 innodb_buffer_pool_size 的值
- 杀死 ib_logfile*
- 启动mysqld
我做错了什么?这次我应该做些什么不同的事情?
更改
innodb_buffer_pool_size
不需要您核对 ib_logfiles。这很可能是您必须恢复数据库 (*) 的原因。只需停止 mysql -> 更改 my.cnf 中的设置 -> 启动 mysql。
不要删除 iblog 文件。您可能有
innodb_fast_shutdown = 1
,它可以让您快速关闭,但需要在启动时付出一些额外的努力。这些文件是必需的。my.cnf
添加或增加设置。innodb_buffer_pool_size
[mysqld]
通常 70% 的可用 RAM 是一个不错的值。
5.7.5 版实现了
innodb_buffer_pool_size
. 使用此版本(或更高版本),您可以my.cnf
以使其在任何重新启动后生效。SET GLOBAL...
在系统运行时。不需要反弹。大小的变化将在正在运行的系统中优雅地执行。