突然无法转储远程数据库:'字段列表'中的未知列'generation_expression'

问题描述 投票:0回答:1

我一直能够使用 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,但这需要花费大量时间和精力,而且可能无法解决问题。

编辑:我刚刚重新安装了数据库服务器并清理了所有数据(先备份),但我仍然遇到同样的错误。

mysql mariadb dump mysql-5.6
1个回答
2
投票

这在 MariaDB 10.11 中发生了变化(参见 MDEV-16029 和这个 commit)。

因此,您应该降级 MariaDB 客户端工具(10.10 或更低版本)或使用 MySQL 客户端工具。在过去的 10 年里,MariaDB 和 MySQL 出现了分歧,因此无法保证在将 MySQL 客户端工具与 MariaDB 服务器一起使用时转储能够正常工作。

还要考虑升级您的 MySQL 安装。几年前,MySQL 5.6 已经停产。

© www.soinside.com 2019 - 2024. All rights reserved.