From 68ccabb1a64400414523b6b25ef462f340d2fdbe Mon Sep 17 00:00:00 2001 From: zyimm Date: Tue, 23 May 2023 14:43:49 +0800 Subject: [PATCH] =?UTF-8?q?:art:mysqldump:=20Couldn=E2=80=99t=20execute=20?= =?UTF-8?q?=E2=80=98SELECT=20COLUMN=5FNAME...'=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/数据库/Mysql/mysqldump-error.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 _posts/数据库/Mysql/mysqldump-error.md diff --git a/_posts/数据库/Mysql/mysqldump-error.md b/_posts/数据库/Mysql/mysqldump-error.md new file mode 100644 index 0000000..5fa17fa --- /dev/null +++ b/_posts/数据库/Mysql/mysqldump-error.md @@ -0,0 +1,26 @@ +--- +title: 'mysqldump: Couldn’t execute ‘SELECT COLUMN_NAME...'的问题处理 +date: 2023-05-20 +tags: mysql +--- + +在日常使用mysqldump进行数据备份时,会会出现如下的问题: + +```sh +mysqldump -h *** -u root -p --skip-lock-tables mig_test > /var/log/mysql/bak.sql +Enter password: +#输入密码之后报如下错误: +mysqldump: Couldn't execute 'SELECT COLUMN_NAME, + JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') + FROM information_schema.COLUMN_STATISTICS + WHERE SCHEMA_NAME = 'mig_test' AND TABLE_NAME = 'migrations';': + +Unknown table 'COLUMN_STATISTICS' in information_schema (1109) +``` +经查阅相关资料得知,需要添加`--column-statistics=0`即可。我猜测的原因可能是备份数据时候在读取相关表结构没有相关权限,所以报此错误。通过添加`--column-statistics=0`进行关闭,以免报错。 + +`--column-statistics` 是一个用于输出列统计信息的选项。这个选项可以让 mysqldump 在备份数据时,输出每个表的列名、数据类型、长度、默认值、是否为 null 等信息,同时还输出了每个列的统计信息,包括平均长度、总长度、字符集、数字类型的比例等信息。 + +列统计信息对于优化备份文件的大小和速度非常有用。例如,如果你知道某个列中大多数数据都是 NULL,那么你可以减少备份该列的数据,从而减少备份文件的大小。另外,如果你知道某个列的数据类型和长度,你可以更好地规划备份文件的大小和格式,以最大化备份效率。 + +