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
暫時緩解。