Отличить рабочий X Protocol от отказа порта и проверить TLS

Отчёт показывает фактические наблюдения программы. Если создавались учебные базы, их удаление проверено отдельно.

Наблюдаемый результат программы
НаблюдениеРезультат
Первый контрольный SELECT1
X Protocol использует TLSда
Версия TLSTLSv1.3
Шифр X ProtocolTLS_AES_256_GCM_SHA384
Код отказа неслушающего порта2002
Рабочее соединение после отказа1
Строки и дополнительные наблюдения
{
    "schema_absence_before": {
        "phpmanualx146alpha": true,
        "phpmanualx146beta": true
    },
    "schema_absence_after": {
        "phpmanualx146alpha": true,
        "phpmanualx146beta": true
    },
    "first_query": [
        {
            "ready": 1
        }
    ],
    "x_protocol_tls": {
        "active": "ON",
        "cipher": "TLS_AES_256_GCM_SHA384",
        "version": "TLSv1.3"
    },
    "failed_endpoint": {
        "host": "127.0.0.1",
        "port": 14602,
        "bound_without_listen": true,
        "connect_timeout_ms": 1000,
        "failure": [
            {
                "class": "mysql_xdevapi\\Exception",
                "code": 2002,
                "message": "[2002][HY000] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение"
            }
        ]
    },
    "last_query": [
        {
            "ready": 1
        }
    ],
    "uri_omitted": true
}

Полный JSON результата, включая реальные идентификаторы, сохранён рядом в result.json.