如何调整MySQL参数

 更新时间:2025年09月04日 10:33:25   作者:angushine  
调整InnoDB缓冲池大小有两种方法:1. 修改配置文件my.cnf/my.ini并重启MySQL,永久生效;2. 动态调整(需MySQL 5.7+),通过SQL语句设置,重启失效,注意Chunk_size倍数及权限

调整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';

查看调整进度。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL深分页优化方式

    MySQL深分页优化方式

    本文讨论了MySQL中深分页问题及其解决方法,包括延迟关联和最大ID查询法,延迟关联通过两步查询优化性能,减少数据扫描量和IO操作,充分利用索引,最大ID查询法利用数据表中ID的有序性,减少扫描量和IO操作,性能提升明显,但依赖有序ID、不适合复杂排序需求
    2024-12-12
  • mysql对binlog的处理说明

    mysql对binlog的处理说明

    Mysql和其它开源数据库相比,具有更好的扩展性。其主要原因是它提供了存储引擎的开放接口。喜欢自己折腾数据库的程序员可以从这个接口起步,打造有个性的数据库。
    2011-07-07
  • MySQL参数优化信息参考(my.cnf参数优化)

    MySQL参数优化信息参考(my.cnf参数优化)

    下面针对一些参数进行说明,当然还有其它的设置可以起作用,取决于你的负载或硬件:在慢内存和快磁盘、高并发和写密集型负载情况下,你将需要特殊的调整
    2024-07-07
  • Mysql prepare预处理的具体使用

    Mysql prepare预处理的具体使用

    本文主要介绍了Mysql prepare预处理,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • MYSQL中的json数据操作代码

    MYSQL中的json数据操作代码

    这篇文章主要介绍了MYSQL中的json数据操作,主要包括基础查询操作,JSON函数操作,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • MySQL外键级联的实现

    MySQL外键级联的实现

    本文主要介绍了MySQL外键级联的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • MySQL中ON DUPLICATE key update的使用

    MySQL中ON DUPLICATE key update的使用

    本文主要介绍了MySQL中ON DUPLICATE key update的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 将图片储存在MySQL数据库中的几种方法

    将图片储存在MySQL数据库中的几种方法

    今天小编就为大家分享一篇关于将图片储存在MySQL数据库中的几种方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • mysql 启动错误1067 问题及解决方法

    mysql 启动错误1067 问题及解决方法

    这篇文章主要介绍了mysql 启动错误1067 问题及解决方法的相关资料,需要的朋友可以参考下
    2016-11-11
  • mysql本地登录无法使用端口号登录的解决方法

    mysql本地登录无法使用端口号登录的解决方法

    这篇文章主要介绍了mysql本地登录无法使用端口号登录的解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06

最新评论