mysqldump: Couldn’t execute. Unknown table ‘column_statistics’ in information_schema

I want to dump my database, even after following correct syntax it thows me following error.

Syntax I used :

mysqldump -uroot -p omnichannel_store_india > omnichannel_store_india.sql

Throws errors :

mysqldump: Couldn’t execute
‘SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, ‘$.”number-of-buckets-specified”‘) FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = ‘omnichannel_store_india’ AND TABLE_NAME = ‘consignment_items’;’:

Unknown table ‘column_statistics’ in information_schema (1109)

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

This is due to a flag column-statistics that is enabled by default in mysqldump 8. You can disable it by adding --column-statistics=0.

The command will be something like:

mysqldump --column-statistics=0 --host=<server> --user <user> --password <securepass>

To disable column statistics by default, you can add the following in a MySQL config file, such as /etc/my.cnf or ~/.my.cnf.

[mysqldump]
column-statistics=0

It’s brilliantly working for me.

More details about column-statistics:

Add ANALYZE TABLE statements to the output to generate histogram
statistics for dumped tables when the dump file is reloaded. This
option is disabled by default because histogram generation for large
tables can take a long time.

Ref: MySQL official documentaion
link

Method 2

In my case, we using mariadb-server and mysql-client(8.0). The column-statistics was introduced on mysql-client 8.0.
The quick fixed way it that remove the mysql-client and install mariadb-client.

On ubuntu 20.04, the command is:

apt remove mysql-client
apt install mariadb-client

Method 3

Since i cannot comment the actual answer from user:Amitesh Bharti, i’m adding a slight variation of the actual answer. In my case i had to change it in /etc/my.cnf.d/client.cnf and i had to leave it in the [client] section so not adding a [mysqldump] section.

So for me this was working /etc/my.cnf.d/client.cnf

[client]
column-statistics=0


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x