mysqldump 迁移数据报错:Unknown table ‘COLUMN_STATISTICS‘ in information_schema

背景

系统迭代开发,需要将线上数据迁移到测试环境,数据量不是很大,所以选择使用 mysqldump 工具数据迁移。

迁移操作

mysqldump 是 MySQL 自带的系统工具,可以使用 命令行 模式也可以选择使用可视化工具。

1. 使用命令行

如果可以 ssh 连接上数据库所在的机器,可以是使用命令行进行操作:

从源数据库导出数据到 test.sql

 mysqldump db_name > backup-file.sql

从 test.sql 导入数据到测试环境的数据库

mysql db_name < backup-file.sql

2. DataGrip with mysqldump

我使用的是 DataGrip 的 mysqldump 工具进行数据迁移的,这里也分享下具体的做法

  1. 选中源数据库的 schema 右击唤出菜单选择 Export Data to Files
    DataGrip-Export Data to Files
  2. 弹出下面的对话框,可以选择,是否包含数据或者是只导出数据结构。
    在这里插入图片描述
  • Path to mysqldump 选择你的mysqldump在本地磁盘的位置
  • Statements 选择模式
  • Databases 需要导出的数据库(不可选择,默认当前右键选中的)
  • Tables 需要导出的表(不可选择,默认当前右键选中的)
  • 多选框,根据自己需求进行选择,一般默认即可
  • Out path 导出路径
  1. 运行之后出现了下面的问题
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)

查阅文档得知:
MSYQL 官方文档
这是由于在mysqldump 8中默认启用了一个新标志。可以通过添加——column-statistics=0 来禁用它。该命令如下:

--column-statistics=0 

修改之后我的导出命令为:
在这里插入图片描述
也可以通过设置 mysql 的配置文件 /etc/my.cnf 得到根本性的解决

[mysqldump]
column-statistics=0

版权声明:本文为qq_37339399原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。