Nach nur vierzehneinhalb Jahren (in Ziffern: 14,5) wurde Fehler 199 »InnoDB Autoincrement Stats Loss on Restart« im Datenbankserver MySQL behoben. (In MariaDB schon ein paar Monate eher, nämlich Anfang 2017 mit Version 10.2.4).

Der Fehler, der zu Datenverlusten führen kann, war:

Verwendet man AUTO_INCREMENT in InnoDB in MySQL (und MariaDB), so speichert der Datenbankserver den Wert nur im Arbeitsspeicher. Nach einem Server-Neustart kann es vorkommen, daß früher bereits verwendete (und gelöschte) Werte noch einmal verwendet werden, denn dann wird der letzte Autoinkrementwert, der in einer Tabelle gespeichert wurde, um eins erhöht und verwendet – und nicht der möglicherweise vor dem Neustart höhere Wert, der sich im Arbeitsspeicher befand.

Dieses Fehlverhalten wurde zwar dokumentiert (auch in MariaDB), aber es ist doch sehr unerwartet.

Schön, daß der Fehler, nachdem er zu einigen Datenverlusten geführt hat, wie in den Meldungen zum seit 2003 bestehenden Bug 199 dokumentiert, nach 14,5 Jahren in MySQL 8.0.0 behoben wurde und damit auch irgendwann die MySQL-Pakete in diversen Betriebssystem-Versionen erreicht.


Von der Fehlerbehebung erfahren habe ich durch Cron.Weekly.