暂无图片
replicate_wild_ignore_table 只能在my,cnf中设置吗?
我来答
分享
暂无图片 匿名用户
replicate_wild_ignore_table 只能在my,cnf中设置吗?

mysql> set global replicate_wild_ignore_table='db04.%';
ERROR 1193 (HY000): Unknown system variable 'replicate_wild_ignore_table'
mysql> show variables like '%replicate%';
Empty set (0.00 sec)


replicate_wild_ignore_table 只能在my,cnf中设置吗?


在my.cnf中设置完成后,show variables 还是看不到,只能show slave status看到,这是正常的吗?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
周波

  在MySQL主从复制环境中,replicate_wild_ignore_table参数是从库复制过滤器中的一个配置选项,非系统变量,故你不能直接通过set命令进行修改,通过show variables无法查看;此配置选项允许你以通配符模式(包括%和_通配符,其含义与like模式匹配操作符一致)来匹配多张表,从库的SQL线程在应用来自主库的二进制日志时,会跳过基于这些表的变更日志。
  该选项的配置方法有三种。
  方法一:在my.cnf中配置

vim my.cnf
replicate_wild_ignore_table='db04.%'

  方法二:在数据库启动命令中加上 --replicate-wild-ignore-table=‘db04.%’

mysqld --replicate-wild-ignore-table=db04.% ...

  前两种方法本质是一样的,只是配置的方式不同而已,需要在数据库启动前进行设置。
  方法三:通过SQL语句change replication filter进行修改
  此方法需要先停掉从库的SQL线程再执行更改,随后启动SQL线程既可生效,无需重启数据库,但在随后的一次数据库重启会导致配置丢失,可以结合my.cnf配置文件一起,完成持久化配置。

# 1.停SQL线程
## MySQL8.0.22之前
stop slave sql_thread;
## 自MySQL8.0.22起
stop replica sql_thread;

# 2.修改replicate_wild_ignore_table
change replication filter replicate_wild_ignore_table=('db04.%');

# 3.启动SQL线程
## MySQL8.0.22之前
start slave sql_thread;
## 自MySQL8.0.22起
start replica sql_thread;
暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏