#!/bin/bash echo "=== MySQL主从故障排查 ===" echo "1. 查看所有资源状态:" kubectl get all -l app=mysql echo -e "\n2. 查看Pod详细状态:" kubectl describe pods -l app=mysql echo -e "\n3. 查看Pod日志:" for POD in $(kubectl get pods -l app=mysql -o name); do echo -e "\n=== $POD 日志 ===" kubectl logs $POD --tail=20 done echo -e "\n4. 检查网络连通性:" MASTER_POD=$(kubectl get pod -l role=master -o name 2>/dev/null | head -1) if [ ! -z "$MASTER_POD" ]; then echo "从从节点测试连接主节点服务:" SLAVE_POD=$(kubectl get pod -l role=slave -o name | head -1) if [ ! -z "$SLAVE_POD" ]; then kubectl exec $SLAVE_POD -- sh -c "nc -zv mysql-master 3306 && echo '连接成功' || echo '连接失败'" fi fi echo -e "\n5. 检查MySQL进程:" for POD in $(kubectl get pods -l app=mysql -o name); do echo -e "\n=== $POD MySQL进程 ===" kubectl exec $POD -- ps aux | grep mysql done echo -e "\n6. 手动检查复制状态:" if [ ! -z "$SLAVE_POD" ]; then echo "从节点复制状态:" kubectl exec $SLAVE_POD -- mysql -uroot -proot123 -e "SHOW SLAVE STATUS\G" 2>/dev/null || echo "无法连接到MySQL" fi