#!/bin/bash echo "=== MySQL 兼容性检查脚本 ===" echo # 检查 MySQL 容器 MYSQL_CONTAINER=$(docker ps --format "table {{.Names}}" | grep -i mysql | head -1) if [ -z "$MYSQL_CONTAINER" ]; then echo "❌ 未找到运行中的 MySQL 容器" echo "请确保 MySQL 容器正在运行" exit 1 fi echo "✓ 找到 MySQL 容器: $MYSQL_CONTAINER" echo echo "🔍 检查 MySQL 版本:" MYSQL_VERSION=$(docker exec "$MYSQL_CONTAINER" mysql --version 2>/dev/null || echo "无法获取版本") echo "MySQL 版本: $MYSQL_VERSION" echo echo "🔍 检查认证插件:" docker exec "$MYSQL_CONTAINER" mysql -u root -pAbc@123456 -e "SELECT plugin FROM mysql.user WHERE User='root';" 2>/dev/null || echo "无法查询认证插件" echo echo "🔍 检查用户权限:" docker exec "$MYSQL_CONTAINER" mysql -u root -pAbc@123456 -e "SHOW GRANTS FOR 'root'@'%';" 2>/dev/null || echo "无法查询用户权限" echo echo "💡 如果仍有连接问题,可以尝试以下解决方案:" echo "1. 在 MySQL 中修改用户认证方式:" echo " ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Abc@123456';" echo " FLUSH PRIVILEGES;" echo echo "2. 检查 MySQL 配置文件中的 default-authentication-plugin" echo echo "3. 确认网络连接正常:" echo " docker exec $MYSQL_CONTAINER ping mysql" echo echo "=== 检查完成 ==="