修改innodb_buffer_pool_size参数

mysql> SET GLOBAL innodb_buffer_pool_size=5368709120;

ERROR 1238 (HY000): Variable 'innodb_buffer_pool_size' is a read only variable


通过ps -ef命令直接查看

1009     23840 23150  1 Oct27 ?        00:39:19 /usr/local/mysql/bin/mysqld --defaults-file=/etc/myconf/qssirp_db02.cnf --basedir=/usr/local/mysql --datadir=/data/qssirp_db02/data/qssirp_db02 --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/data/qssirp_db02/data/qssirp_db02/B0307001.err --pid-file=/data/qssirp_db02/data/qssirp_db02/B0307001.pid --socket=/etc/mysock/qssirp_db02.sock --port=60028

找到对应的cnf文件

主要要有修改权限 ls一下看文件是哪个用户创建的。


重启

mysqld_safe --defaults-file='/etc/myconf/qssirp_db02.cnf' >/dev/null 2>&1 &




### 修改 `innodb_buffer_pool_size` 的方法 MySQL 的 InnoDB 存储引擎通过缓冲池(InnoDB Buffer Pool)来缓存数据和索引,以提高数据库性能。其中 `innodb_buffer_pool_size` 是决定缓冲池大小的关键参数,通常建议将其设置为服务器物理内存的 50%~80%,具体值应根据实际负载和可用资源进行调整。 #### 配置文件修改方式 要永久更改 `innodb_buffer_pool_size`,需要编辑 MySQL 的配置文件 `my.cnf` 或 `my.ini`(具体路径取决于操作系统)。在 `[mysqld]` 段中添加或修改以下配置行: ```ini [mysqld] innodb_buffer_pool_size = 2G ``` 此配置将缓冲池大小设置为 2GB。如果服务器具有较大内存(如 64GB 或更高),可适当增加该值,例如设置为 50G 或更高[^3]。 保存配置文件后,重启 MySQL 服务使新配置生效: ```bash sudo systemctl restart mysql ``` #### 动态调整方式(MySQL 5.7.5+) 从 MySQL 5.7.5 开始,支持在线动态修改 `innodb_buffer_pool_size`,无需重启 MySQL 服务。可以通过 SQL 命令实现: ```sql SET GLOBAL innodb_buffer_pool_size = 2147483648; -- 设置为2GB ``` 需要注意的是,动态调整仅适用于支持此功能的版本,并且新的缓冲池大小不会写入配置文件,重启后会恢复为配置文件中的设定值。 #### 多实例配置建议 为了提升并发性能,尤其是在多核系统上,可以结合 `innodb_buffer_pool_instances` 参数将缓冲池划分为多个实例。推荐当 `innodb_buffer_pool_size` 较大时(例如超过 1GB),设置多个实例以减少锁竞争并提高吞吐量。例如: ```ini [mysqld] innodb_buffer_pool_size = 16G innodb_buffer_pool_instances = 8 ``` 此配置将缓冲池大小设为 16GB,并划分为 8 个实例,有助于在高并发场景下优化性能[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值