这个MySQL严重缺陷逾20年仍未修复
17611538698
webmaster@21cto.com

这个MySQL严重缺陷逾20年仍未修复

数据库 0 21 1天前
图片

早在20056月,一个被评定为“S2(严重)级别的MySQL缺陷悬而未决,至今已逾20年。这一情况引起了开源数据库管理器社区的无奈和失望。

该漏洞的编号为“bug 11472”,其描述为外键更新/删除后不会执行触发器。触发器是响应特定事件(如在表中插入、更新、删除数据)时自动执行的代码块,通常用于维护数据的完整性。该漏洞意味着,如果通过间接方式更新某个表,由于它与另一张表的关联,相关的触发器将不会被触发。

尽管MySQL团队曾公开表示该漏洞是已知问题,并承诺在5.1版本中修复,但这一承诺并未兑现。尽管漏洞已在手册中被记录为级联外键操作不会激活触发器

开发人员在评论该漏洞时指出,它严重威胁ACID原则/数据完整性2015年,有开发人员提到,我们因尝试在级联删除上执行触发器而遇到此问题,迫切需要解决方案,非常感谢!”ACID代表原子性、一致性、隔离性和持久性

2020年,一位年轻的开发人员评论道,这个漏洞比我年龄还大。

该漏洞的影响深远。2023年,另一位开发人员表示,我们多年前就停止使用MySQL——这个漏洞是我们放弃它的最后一根稻草。当时我们需要一个未定制的账户平台来确保数据完整性。

MySQL2010年被Oracle收购,当时作为Sun Microsystems的一部分。尽管该漏洞比收购时间更早,但仍然被视为Oracle忽视社区需求的一个例证。然而,另一种观点认为,长期存在的已知缺陷不修复反而更安全,以防止某些应用依赖于这些缺陷。但在本案例中,这种论点并不成立。

Oracle收购MySQL的同时,其分支MariaDB也将此漏洞标记为未解决

Reddit论坛上引发了关于使用触发器实现数据库完整性是否最佳实践的讨论。有人回应称,应对措施是不使用MySQL,而应选择一个更合理的关系数据库。最常见的替代选项是PostgreSQL。还有人戏谑地说,事到如今,它已经成了一个特性

DB-Engines排行榜显示,MySQL仍然是继Oracle之后、微软SQL Server之前的全球第二大最广泛使用的数据库管理器。然而,MySQL的受欢迎程度正在下降,而PostgreSQL的受欢迎程度却在上升。该排行榜基于社区提及频率和职位招聘需求,而非实际使用数据,虽然不能作为绝对参考,但它仍然表明了MySQL的衰退迹象。

图片


去年,Percona 公司的专家Peter Zaitsev在MySQL领域深耕多年,他表示,“多年来MySQL 似乎在性能工程部门遭受了多年的忽视”并提到Oracle将重要新功能设为云端 Heatwave 的专属服务,刻意边缘化开源版 MySQL。

编辑:行动的大雄

参考:

https://devclass.com/2025/06/24/serious-mysql-bug-celebrates-20-years-unfixed-another-reason-to-switch-to-postgresql/

评论