调整innodb_buffer_pool_size
方法一:修改配置文件(永久生效)
打开MySQL配置文件my.cnf(Linux)或my.ini(Windows)
在[mysqld]部分添加或修改innodb_buffer_pool_size参数,可设置具体值,单位为字节,如innodb_buffer_pool_size=8589934592。
保存文件后,重启MySQL服务使更改生效,命令为sudo systemctl restart mysql(Linux)或net stop mysql和net start mysql(Windows)。
方法二:动态修改(仅适用于MySQL 5.7及以上版本,重启后失效)
使用SQL语句SHOW VARIABLES LIKE ‘innodb_buffer_pool_size’;查看当前设置。
mysql> SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
+-------------------------+-------------+
| Variable_name | Value |
+-------------------------+-------------+
| innodb_buffer_pool_size | 12884901888 |
+-------------------------+-------------+
1 row in set (0.01 sec)
执行SET GLOBAL innodb_buffer_pool_size = 新值;来修改,新值需是innodb_buffer_pool_chunk_size的整数倍。
mysql> SET GLOBAL innodb_buffer_pool_size=8589934592;
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER or SYSTEM_VARIABLES_ADMIN privilege(s) for this operation
如果出现上面的错误,需要授予SYSTEM_VARIABLES_ADMIN权限,可以看到授权后,可正常设置参数
mysql> GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL innodb_buffer_pool_size=8589934592;
Query OK, 0 rows affected (0.00 sec)
可通过SHOW VARIABLES LIKE ‘innodb_buffer_pool_resize_status’;查看调整进度。
3924

被折叠的 条评论
为什么被折叠?



