| 12345678910111213141516171819202122232425262728293031323334353637 |
- #!/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
|