Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > 调整MySQL参数

如何调整MySQL参数

作者: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及以上版本,重启后失效)

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

查看调整进度。

总结

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

您可能感兴趣的文章:
阅读全文