#!/bin/bash echo "=== Docker 网络诊断 ===" echo "" echo "1. Docker0 网桥 IP:" ip addr show docker0 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}' || echo "❌ docker0 不存在" echo "" echo "2. MySQL 监听状态:" sudo netstat -tlnp | grep 3306 || echo "❌ MySQL 未运行或未监听 3306" echo "" echo "3. MySQL 用户权限:" mysql -u root -p -e "SELECT user, host FROM mysql.user WHERE user='railway';" 2>/dev/null || echo "❌ 无法查询(需要 root 密码)" echo "" echo "4. 测试从容器连接 MySQL:" DOCKER0_IP=$(ip addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') if [ ! -z "$DOCKER0_IP" ]; then docker run --rm mysql:8.0 mysql -h $DOCKER0_IP -u railway -p'Railway01.' -e "SELECT 'OK' as status;" 2>&1 else echo "❌ 无法获取 docker0 IP" fi echo "" echo "=== 诊断完成 ==="