28 lines
839 B
Bash
28 lines
839 B
Bash
#!/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 "=== 诊断完成 ==="
|