我有三台服务器,服务器 X、Y 和 Z。
我在 X 上有主 mysql 数据库(innodb 数据库)。
现在我已经创建了从 X 到 Y 的主从服务器。这里一切正常。
现在我将 Y 设置为 Z 的主服务器。
当我在 Z(第三台服务器)上显示从属状态时
显示从属状态\G Slave_IO_State:等待主机发送事件 ... Slave_IO_Running:是 Slave_SQL_Running:是 ... 落后大师秒数:0
但是数据未同步,并且没有任何内容从 Y 移动到 Z。知道可能是什么原因造成的吗?
编辑
在服务器 Y 上的 my.cnf 中,我有以下配置:
日志从属更新=ON 登录 bin = mysql-bin
但在显示变量如'%slave%'我有
显示类似‘%slave%’的变量; +-----------------------------+--------+ | 变量名称 | 值 | +-----------------------------+--------+ | 初始化从属 | | | log_slave_updates | 关闭| | 从属压缩协议 | 关闭 | | 从属执行模式 | 严格 | | 从站加载_tmpdir | /tmp | | 从属网络超时 | 3600 | | 从站跳过错误 | 关闭 | | 从属事务重试次数 | 10 | sql_slave_skip_counter 默认值为 1。 +-----------------------------+--------+
感谢您的帮助
答案1
确保你已经开始使用--log-slave-updates选项,以便从 X 收到的更新被 Y 记录到它的二进制日志中。
在服务器 Y 上的 my.cnf 中,我有以下配置:
log-slave-updates=ON
使用布尔值代替开关值:
log-slave-updates=true
结果:
mysql> show global variables like '%slave%';
+---------------------------+--------+
| Variable_name | Value |
+---------------------------+--------+
| init_slave | |
| log_slave_updates | ON |
| slave_compressed_protocol | OFF |
| slave_exec_mode | STRICT |
| slave_load_tmpdir | /tmp |
| slave_net_timeout | 3600 |
| slave_skip_errors | OFF |
| slave_transaction_retries | 10 |
| sql_slave_skip_counter | |
+---------------------------+--------+
9 rows in set (0.00 sec)