This commit is contained in:
2025-11-01 17:06:47 +08:00
parent ce40cafad2
commit 41a4c28f39
5 changed files with 53 additions and 11 deletions

42
check-mysql-compatibility.sh Executable file
View File

@@ -0,0 +1,42 @@
#!/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 "=== 检查完成 ==="