mysql+只读参数_MySQL 5.7 下的对super用户只读

为了防止MySQL主从复制场景中的奴隶节点意外写入数据导致不一致,可以启用`read_only`变量使其变为只读。然而,`read_only`对超级用户无效。从MySQL 5.7开始,引入了`super_read_only`变量,确保超级用户在奴隶节点上只能读取,避免潜在故障。启用该变量的方法包括在命令行设置并将其写入`my.cnf`以持久化配置。
摘要由CSDN通过智能技术生成

在MySQL的主从复制场景下,遇上slave被意外写入数据是一件比较严重的问题,毕竟在一般情况下我们都希望slave仅用只读数据库,如果被意外写入数据可能会造成数据的不一致,从而导致主从的报错。因此在MySQL中可以通过设置变量参数read_only

59639d5f9129b4dfac7a2e7c555a6f5b.png

使MySQL的slave设置为只读,在缺省条件下read_only变量参数是关闭的,但是read_only变量参数有一个问题它对super用户无效,所以如果使用super用户在开启read_only的slave下还是可以正常的读写。在仅作为只读的slave下如果出现super用户误操作,那势必会造成一定的故障,而在MySQL 5.7后Oracle对MySQL的大量代码进行重构调优后添加了一个新的变量参数super_read_only,顾名思义就是super用户只读,所以在生产环境下如果没有一些特殊的需求在slave下可以通过开启super_read_only变量来警用slave写入:mysql> set global super_read_only=ON;

Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like '%read_only%';

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

| Variable_name    | Value |

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

好的,针对您的问题,我来给您详细讲解一下如何修改MySQL 5.7参数MySQL 5.7参数可以通过修改配置文件my.cnf来进行配置。my.cnf文件通常位于MySQL安装目录下的/etc或者/etc/mysql目录下。在Linux系统中,可以通过vi或者nano等编辑器打开该文件进行修改。 修改MySQL参数有两种方式:动态修改和静态修改。 动态修改是指在运行时直接修改MySQL参数值,这种方式的优点是不需要重启MySQL服务,缺点是重启MySQL服务后,修改的参数值会失效。 静态修改是指在my.cnf文件中修改MySQL参数值,这种方式的优点是修改的参数值会持久化保存,即使重启MySQL服务后,修改的参数值也不会失效。缺点是需要重启MySQL服务才能生效。 下面是两种方式的具体操作步骤: 动态修改MySQL参数: 可以通过下面的命令动态修改MySQL参数: ``` SET GLOBAL parameter_name=parameter_value; ``` 其中,parameter_name为要修改的参数名,parameter_value为要修改的参数值。例如,要将max_connections参数修改为1000,可以使用下面的命令: ``` SET GLOBAL max_connections=1000; ``` 静态修改MySQL参数: 可以通过修改my.cnf文件来静态修改MySQL参数。具体操作步骤如下: 1.使用编辑器打开my.cnf文件,例如: ``` sudo vi /etc/mysql/my.cnf ``` 2.找到要修改的参数行,例如: ``` max_connections=100 ``` 3.将参数值修改为需要的值,例如: ``` max_connections=1000 ``` 4.保存修改后的my.cnf文件。 5.重启MySQL服务,例如: ``` sudo service mysql restart ``` 这样,修改的参数值就会生效了。 希望以上内容能够对您有所帮助。如果您还有其他问题,可以随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值