| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- # 检查详细的复制状态
- SLAVE_POD=$(kubectl get pod -l role=slave -o jsonpath='{.items[0].metadata.name}')
- MASTER_POD=$(kubectl get pod -l role=master -o jsonpath='{.items[0].metadata.name}')
- echo -e "\n=== 测试数据同步 ==="
- # 在主节点创建测试数据
- echo "1. 在主节点创建测试数据:"
- kubectl exec $MASTER_POD -- mysql -uroot -proot123 <<EOF
- 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;
- EOF
- echo -e "\n2. 等待3秒确保数据同步..."
- sleep 3
- echo -e "\n3. 在从节点查询数据:"
- kubectl exec $SLAVE_POD -- mysql -uroot -proot123 -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 $SLAVE_POD -- mysql -uroot -proot123 -e "
- INSERT INTO replication_test.sync_data (message) VALUES ('从节点尝试写入');" 2>&1 | grep -i "error\|read-only" || echo "✅ 写入被阻止(符合预期,从节点是只读的)"
|