Критическая ошибка, влияющая на триггеры MySQL, оставалась неисправленной в течение 20 лет, несмотря на обещания исправить ее, что вызывает серьезные опасения по поводу надежности баз данных.
DevClass сообщили, что серьезная уязвимость MySQL, впервые зафиксированная в 2005 году, продолжает беспокоить систему баз данных, вызывая широкую озабоченность целостностью данных и заставляя некоторых разработчиков отказаться от MySQL в пользу PostgreSQL.
Подробности о постоянной ошибке
Уязвимость, отслеживаемая как ошибка #11472 с июня 2005 года, имеет рейтинг серьезности S2 (Serious) (согласно официальной странице сообщений об ошибках MySQL) и на момент публикации остается неустраненной. Проблема связана с триггерной функциональностью MySQL – автоматическим кодом, который выполняется при вставке, обновлении или удалении определенных таблиц.
Техническое описание: Ошибка не позволяет триггерам выполняться после обновлений или удалений, связанных с внешними ключами. Когда таблица косвенно изменяется через отношения внешних ключей с другими таблицами, связанные с ней триггеры не срабатывают, что потенциально может нарушить механизмы целостности данных.

Нарушенные обещания и разочарование разработчиков
Команда разработчиков MySQL признала проблему известной вскоре после ее первоначального сообщения, пообещав исправить ее в версии 5.1. Это исправление так и не появилось, оставив уязвимость открытой в многочисленных версиях MySQL на протяжении двух десятилетий.
Реакция сообщества и тенденции миграции
Терпение сообщества MySQL, похоже, исчерпано, согласно официальной странице сообщений об ошибках на Reddit. Обсуждения показывают жаркие споры о лучших практиках работы с базами данных, причем многие разработчики сомневаются, стоит ли полагаться на триггеры для обеспечения целостности данных, учитывая эту давнюю ошибку.
Общее мнение, выраженное на форумах:
Нельзя использовать MySQL, нужно использовать разумную реляционную базу данных
Наиболее часто рекомендуемой альтернативой является PostgreSQL.
Влияние на рынок и падение популярности MySQL
Согласно рейтингу DB-Engines, популярность MySQL продолжает снижаться, хотя она сохраняет позицию второй по распространенности системы управления базами данных в мире, уступая Oracle и опережая Microsoft SQL Server.
Эта уязвимость 20-летней давности представляет собой не просто техническую проблему – она стала символом проблем с надежностью MySQL, потенциально ускоряя миграцию критически важных приложений на альтернативные системы баз данных.

Что это значит для пользователей MySQL
Организациям, полагающимся на триггеры MySQL для обеспечения целостности данных, следует:
- Провести аудит существующих реализаций триггеров
- Рассмотреть альтернативные методы обеспечения целостности
- Оцените варианты миграции для критических систем
- Мониторинг официальных каналов MySQL на предмет потенциальных исправлений
Устойчивость этой уязвимости ставит под сомнение приоритеты развития MySQL и ее приверженность решению давних критических проблем, влияющих на целостность данных.
Комментарии (0)