如果您曾经尝试使用 mysqldump 工具备份 MySQL 或 MariaDB 数据库,则可能会遇到此错误:
mysqldump: Unknown table ‘column_statistics’ in information_schema
导致此错误的原因
此错误与 MariaDB 10.2.2 及以上版本特别相关。从这个版本开始,MariaDB 在 information_schema 数据库中引入了一个名为 column_statistics 的新表,它旨在支持一些高级特性,如直方图统计。
mysqldump 实用程序在使用某些选项时,会尝试访问这个表。但是,如果您使用 MySQL 客户端工具 (而不是 MariaDB 的工具) 来获取 MariaDB 数据库的转储,则可能会遇到此错误。MySQL 版本的mysqldump 不识别 column_statistics 表。
如何解决这个错误 ?
有多种方法可以解决这个问题,正确的解决方案通常取决于您的场景。
1. 使用 --column-statistics=0 选项
最简单的解决方法是在使用 mysqldump 时关闭列统计信息。
mysqldump --column-statistics=0 -u username -p database_name > dump_file.sql
2. 使用 MariaDB 的 mysqldump 工具
If you’re working with a MariaDB database, it makes sense to use the mysqldump tool that comes with MariaDB. This tool is familiar with the column_statistics table and will not throw the error.
如果您正在使用 MariaDB 数据库,那么使用 MariaDB 附带的 mysqldump 工具是有意义的。
如果您使用包管理器安装 MariaDB,那么 mysqldump 版本应该是正确的。通过指定完整路径或检查其版本,确保使用正确的二进制文件。
3. 升级 MySQL 客户端工具
随着软件的更新发展,像这样的不兼容性可能会在未来的版本中得到解决。定期更新工具并检查问题是否在新版本中得到解决始终是一种良好的做法。
4. 避免混合使用 MySQL 和 MariaDB 工具
即使 Mariadb 是 MySQL 的 Fork,并且大多数是兼容的,存在的差异也可能引起问题。 使用与服务器匹配的工具和二进制文件避免不可预见的并发症。