type
status
date
slug
summary
tags
category
icon
password
MySQL 在
8.0 之前有一個歷史悠久的 Bug #199 ,該 Bug是 Innodb 中具有 auto_increment 欄位的 Table,因為 auto_increment 是寫在內存沒有持久化的,所以在重啟 MySQL 後會透過 SELECT MAX(id)+1 FROM table 的結果更新這些 Table 的 auto_increment 值,導致 auto_increment 值有重複使用的問題,因而在某些場景下會產生問題,例如:MS切換、歷史資料遷移......等。重現
解決方案
- 升級到 MySQL 8.0 版本,8.0版本透過
redo log和一個新的 InnoDB 系統表解決了這個BUG
- 自行持久化
auto_increment,建立修改auto_increment值的 SP,並透過寫入init-file暫時緩解。