我使用的是 Debian Buster,从 10.3.22 升级后,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 安装中重新导入了它们,但我担心这可能会破坏数据库。
答案1
问题解决了。mysql 核心表与默认值有偏差。我在本地安装了一个新的 MariaDB 实例,并通过以下方式比较了架构
USE mysql; SHOW TABLE STATUS;
并对齐所有差异。之后,升级脚本运行良好。