Мы используем Percona Server 5.6.36-82.1-log и PHP 7.0.19.
База данных настраивается с помощью max_statement_time для автоматического тайм-аута запросов через 10 секунд. И при выполнении (очень) медленных запросов в PHPMyAdmin они истекают с правильной ошибкой mysql.
Но при выполнении запросов в нашем веб-приложении используется PDO. Запрос просто останавливается после истечения времени ожидания, но без выдачи ошибки / выдачи исключения. Запрос просто останавливается и не дает результатов, как обычный запрос останавливается без результатов.
Объект PDO создается с опцией ATTR_TIMEOUT = 1.
И позже мы добавим
ATTR_ERRMODE = ERRMORE_EXCEPTION,
ATTR_DEFAULT_FETCH_MODE = FETCH_ASSOC
ATTR_EMULATE_PREPARES = false
Что нужно для этой ситуации, чтобы создать исключение, как ожидалось?
Задача ещё не решена.
Других решений пока нет …