42 lines
1.3 KiB
Bash
Executable File
42 lines
1.3 KiB
Bash
Executable File
#!/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 "=== 检查完成 ===" |