在恢復一個mysql庫的備份文件時遇到報錯,報錯信息為index column size too large. the maximum column size is 767 bytes,此問題為備份的庫索引過長超過限制,目標數據庫引擎為INNODB 引擎,編碼UTF-8,主鍵字符串默認最大767,理論上是需要優化備份數據庫的,但是在實際環境中如果沒辦法優化,我們可以通過配置目標數據庫來解決這個報錯
修改數據庫的配置文件(vim /etc/my.cnf),加入如下兩行配置
innodb_large_prefix=on
innodb_file_format=BARRACUDA
重啟數據庫並登錄數據庫檢查配置是否生效
service mysql restart
show variables like 'innodb_large_prefix';
show variables like 'innodb_file_format';
修改我們要還原的數據庫腳本,加入如下配置即可
ROW_FORMAT=DYNAMIC