# 检查详细的复制状态 SLAVE_POD=$(kubectl get pod -n mysql -l role=slave -o jsonpath='{.items[0].metadata.name}') MASTER_POD=$(kubectl get pod -n mysql -l role=master -o jsonpath='{.items[0].metadata.name}') echo -e "\n=== 测试数据同步 ===" echo -e "\n===Master: $MASTER_POD ===" echo -e "\n===Slave: $SLAVE_POD ===" # 在主节点创建测试数据 echo "1. 在主节点创建测试数据:" kubectl exec -n mysql $MASTER_POD -- mysql -uroot -pLq123456! -e " CREATE DATABASE IF NOT EXISTS replication_test; USE replication_test; CREATE TABLE IF NOT EXISTS sync_data ( id INT AUTO_INCREMENT PRIMARY KEY, message VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 清空旧数据(如果有) TRUNCATE TABLE sync_data; -- 插入新数据 INSERT INTO sync_data (message) VALUES ('第一条测试数据'), ('第二条测试数据'), ('第三条测试数据'); SELECT * FROM sync_data ORDER BY id; " echo -e "\n2. 等待3秒确保数据同步..." sleep 3 echo -e "\n3. 在从节点查询数据:" kubectl exec -n mysql $SLAVE_POD -- mysql -uroot -pLq123456! -e " USE replication_test; SELECT * FROM sync_data ORDER BY id; SELECT COUNT(*) as total_records FROM sync_data;" echo -e "\n4. 检查从节点只读模式:" echo "尝试在从节点写入数据(应该失败)..." kubectl exec -n mysql $SLAVE_POD -- mysql -uroot -pLq123456! -e " INSERT INTO replication_test.sync_data (message) VALUES ('从节点尝试写入');" 2>&1 | grep -i "error\|read-only" || echo "✅ 写入被阻止(符合预期,从节点是只读的)"