我一直能够使用 CLI 中的
mariadb-dump
转储我的远程数据库。从今天开始,突然出现如下错误
mysqldump: Couldn't execute
'select column_name, extra, generation_expression, data_type
from information_schema.columns
where table_schema=database()
and table_name='<my-table>'':
Unknown column 'generation_expression' in 'field list' (1054)
我检查了服务器信息架构,确实缺少列
generation_expression
。它存在于我打算转储到的本地测试服务器上。 mariadb-dump 版本为 Ver 10.19 Distrib 10.11.2-MariaDB,for Linux (x86_64),服务器版本为 MySQL 5.6.
我在互联网或stackoverflow上找不到任何相关问题。我环顾四周,看来
generation_expression
仅在 5.7 版中引入。我无法将服务器升级到 5.7。我希望这不是必需的,转储工具以前一直运行良好。
我正在考虑完全重新安装 mariadb,但这需要花费大量时间和精力,而且可能无法解决问题。
编辑:我刚刚重新安装了数据库服务器并清理了所有数据(先备份),但我仍然遇到同样的错误。
这在 MariaDB 10.11 中发生了变化(参见 MDEV-16029 和这个 commit)。
因此,您应该降级 MariaDB 客户端工具(10.10 或更低版本)或使用 MySQL 客户端工具。在过去的 10 年里,MariaDB 和 MySQL 出现了分歧,因此无法保证在将 MySQL 客户端工具与 MariaDB 服务器一起使用时转储能够正常工作。
还要考虑升级您的 MySQL 安装。几年前,MySQL 5.6 已经停产。