网关 0.0.0.0_新特性解读 | MySQL 8.0 轻松改配置,云上友好

背景

MySQL 5.7 及之前版本下修改配置,如果能动态修改的,可以用 set global 语法,不能动态修改的,只能修改 /etc/my.cnf 配置文件,之后重启生效。如果需要持久化动态修改的参数,也只能同时修改 /etc/my.cnf 配置文件。

这个对云上环境不友好,毕竟云数据库上,大家无法直接远程底层虚拟机修改配置文件。针对如何持久化参数配置,在 MySQL 8.0,有一个新特性,可以实现轻松修改配置文件,那就是 set persist set persist_only 语法。前者用于修改并持久化动态参数,后者用于持久化静态参数。

修改并持久化动态参数一例

mysql> show variables like '%innodb_buffer_pool_size%';

+-------------------------+-----------+

| Variable_name | Value |

+-------------------------+-----------+

| innodb_buffer_pool_size | 134217728 |

+-------------------------+-----------+

1 row in set (0.01 sec)

mysql> set persist innodb_buffer_pool_size=134217728*2;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%innodb_buffer_pool_size%';

+-------------------------+-----------+

| Variable_name | Value |

+-------------------------+-----------+

| innodb_buffer_pool_size | 268435456 |

+-------------------------+-----------+

1 row in set (0.00 sec)

在数据目录里,会生成一个持久化参数的 json 格式文件,内容如下:

[root@pxc1 data]# cat mysqld-auto.cnf |jq

{

"Version": 1,

"mysql_server": {

"innodb_buffer_pool_size": {

"Value": "268435456",

"Metadata": {

"Timestamp": 1570678719890919,

"User": "root",

"Host": "localhost"

}

}

}

点评: 居然有时间戳,还有谁修改了参数! 持久化静态参数一例

# 我们先模拟没有权限

mysql> revoke SYSTEM_VARIABLES_ADMIN, PERSIST_RO_VARIABLES_ADMIN on *.* from 'root'@'localhost';

Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> show variables like 'innodb_log_file_size';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值