問題現象:mysql
alter table portal_app_xxxx_xxx add devno varchar(64) NOT NULL DEFAULT '' COMMENT '設備機編',add serialno varchar(64) NOT
NULL DEFAULT '' COMMENT '綁定流程流水號',Error_code: 1034sql
查找解決方法:數據庫
在網上查找了一下,發現大多的解決辦法都是repair,而後再進行myisam進行檢查及恢復;app
可是發現這個方法只適用於存儲引擎爲MyISAM的表,因而繼續猜想着查找方法。code
使用repair table時,直接報Innodb表不支持repair方法。內存
猜想解決方法:it
因爲是對39GB大表進行alter操做,猜測必定會耗用不用臨時表,因而檢查從庫的臨時空間爲/tmp,僅爲總內存的一半,16GB,因此致使了臨時表空間不夠用,再alter過程當中失敗了,因此致使修改表結構失敗,最終致使主從複製失敗。innodb
這次的解決方法:table
(1) 增長/tmp目錄空間;file
(2) 修改mysql數據庫的tmp目錄,把tmp對應的目錄遷移到空間更大的地方,而後重啓動數據庫。
| innodb_tmpdir | /data/mysql/mysql3306/data/inno_tmp_dir | <- 該參數指定alter行爲的tmp目錄。| tmpdir | /data/mysql/mysql3306/tmp