此篇博主分享一次mysql問題排查,在mysql本版本下,運行一段時間,服務器某些業務表出現自增字段自行歸0致使服務器設計該表的業務沒法使用的問題。我的下來查閱網上衆多資料,都沒有找到出現該問題的緣由。因爲博主並非DBA,同時也還沒達到Mysql深度精通的境界,全部下面僅博主我的分析觀點。mysql
出現上訴問題的緣由可能由一下幾種:sql
1.業務、開發或數據庫管理人員其中的某人在查看錶字段時候,不當心點到了取消自增主鍵的取消按鈕;因爲是生產環境,所以比較緊張,想要關掉該表的編輯頁;關閉時,數據庫鏈接工具(如navicat)提示保存、不保存、取消,我的感受上面三個按鈕意思很是的不清晰,所以可能出現誤點保存按鈕,此時就會將自增字段的值更改成0,從而致使後續業務全部新增操做均沒法使用。數據庫
2.Mysql5.6.11這個版本有bug,或在某些特定訪問狀況下,該值出現異常超出最大值後自動歸0。服務器
3.業務程序使用的數據庫訪問工具備個bug、或者和Mysql該版本在特定狀況下會發生衝突,致使了上訴結果。工具
以上講完了自增字段歸0可能出現的緣由,下面貼出出現後程序的具體表現: 設計
解決辦法:3d
1.首先使用數據庫鏈接工具執行下面命令查閱當前該表的自增字段大小,而後和對比表中自增字段最大的值,若是該值大於後者,則業務會出現異常code
SELECT auto_increment FROM information_schema.tables where table_schema="xxx_wcc_test" and table_name="wcc_xxx_buy";
2.修改該自增值爲當前表的最大值+1orm
alter table `wcc_xxxx_buy` auto_increment=38;
此時業務問題已解決,最後說下上訴過程還用到了一個命令來查看Mysql版本,順便說下該字段bigint (20) 非nullblog
最後的最後,博主才疏識淺,如過哪位仁兄知道致使該問題的具體緣由,請在評論區告知博主,博主感激涕零。