Debian

MariaDB mysql_upgrade 10.3.22 到 10.4.13 失敗並出現錯誤“指定的密鑰太長”

  • May 21, 2020

從 10.3.22 升級後,我正在使用 Debian Buster 和一個看似正常執行的 MariaDB 10.4.13。但是,推薦的 mysql_upgrade 腳本失敗並出現以下錯誤:

[..]
Phase 4/7: Running 'mysql_fix_privilege_tables'
ERROR 1071 (42000) at line 442: Specified key was too long; max key length is 1000 bytes
FATAL ERROR: Upgrade failed

現在,這個問題在 serverfault 上被問了兩次,但遺憾的是沒有合適的答案。在做了更多研究之後,這可能是由於我在一些 mysql 核心表中的主鍵總和(不知道是哪些,因為錯誤沒有指定它們)可能太長了。

到目前為止,我的數據庫似乎正在工作,但我想調試這種情況並且不知道我將如何“攻擊它”。我在另一個郵件列表中發現有人刪除了所有 mysql 表並從另一個 MariaDB 安裝重新導入它們,但我擔心這可能會破壞數據庫。

問題解決了。mysql 核心表中存在與預設值的偏差。我在本地安裝了一個新的 MariaDB 實例並通過比較模式

USE mysql; SHOW TABLE STATUS;

並對齊任何差異。之後升級腳本執行良好。

引用自:https://serverfault.com/questions/1017831