it-swarm-es.com

mysqldump throws: tabla desconocida 'COLUMN_STATISTICS' en information_schema (1109)

Cada vez que intento hacer un mysqldump me sale el siguiente error:

$> mysqldump --single-transaction --Host host -u user -p db > db.sql
mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM,
'$."number-of-buckets-specified"') FROM
information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'db' AND
TABLE_NAME = 'Absence';':
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)

El resultado es un volcado que no está completo. Lo extraño es que el mismo comando, ejecutado desde otro Host, funciona sin arrojar ningún error. ¿Alguien experimentó el mismo problema?

Estoy usando mysql-client 8.0 e intenta acceder a un mysql 5-7 servidor - tal vez esa es la razón?

183
manifestor

Esto se debe a una nueva marca que está habilitada de manera predeterminada en mysqldump 8. Puede deshabilitarla agregando --column-statistics = 0. El comando será algo como:

mysqldump --column-statistics=0 --Host=<server> --user=<user> --password=<password> 

Verifique este enlace para más información. Para deshabilitar las estadísticas de columna de forma predeterminada, puede agregar

[mysqldump]
column-statistics=0

a un archivo de configuración de MySQL, como /etc/my.cnf o ~/.my.cnf.

268
cristhiank

Para aquellos que usan MySQL Workbench, hay un botón "Opciones avanzadas" en la pantalla Exportación de datos. La opción "Usar estadísticas de columna" puede deshabilitarse configurando a 0.

No lo he confirmado, pero se ha sugerido que la siguiente información también es cierta: en la versión 8.0.14 falta. En la Versión 8.0.16 está haciendo esto por defecto.

30
atjoedonahue

Pasé todo el día buscando una solución, y chamusqué aquí solo para compartir la mía.

Sí, probablemente este error se deba a la diferencia de versiones.

Simplemente descargue el MySQL 5.7 Zip Archive desde aquí: https://dev.mysql.com/downloads/mysql/ y descomprímalo, luego use el archivo mysqldump.exe desde allí.

Si está utilizando MySQL Workbench, necesitará establecer una ruta a la herramienta mysqldump que descargó yendo a Editar -> Preferencias -> Administración (desde panel izquierdo).

Espero que esto ayude.

20
DodiX

El trabajo más fácil alrededor

Cuando se utiliza Mysql Workbench 8.0

  • Abra la pestaña "Exportación de datos"
  • Haga clic en Opciones avanzadas enter image description here
  • Bajo el encabezado Otro, establezca las estadísticas de columna en 0 enter image description here
  • Exportar de nuevo enter image description here

¡La mejor de las suertes!

7
anson

Para hacer que esta respuesta sea más fácil, puede renombrar mysqldump, hacer un script de Shell en su lugar y llamar al renombrado mysqldump con el --column-statistics=0 argumento. P.ej:

Renombrar mysqldump:

mv /usr/local/bin/mysqldump /usr/local/bin/_mysqldump

Guarde el siguiente script de Shell en su lugar:

#!/bin/sh

_mysqldump --column-statistics=0 [email protected]
5
pierlo

Para macOS necesita la versión anterior (8.0.13) para ver las "estadísticas de columna", porque pruebo las versiones 8.0.14 y 8.0.15 y ambas no muestran las "estadísticas de columna".

Entonces, para ajustar las "estadísticas de columna" use la versión 8.0.13 https://downloads.mysql.com/archives/get/file/mysql-workbench-community-8.0.13-macos-x86_64. dmg

2
Edimar Barbosa

Utilizo XAMPP y MySQL Workbench advierte sobre una discrepancia de versión. Configuré MySQL Workbench para que apunte a mysql.exe y mysqldump.exe de XAMPP.

Vaya a Editar -> Preferencias -> Administración y configure la ruta para cada uno.

Esto funciona al menos para la versión 8.0.14. Entonces, para otros, es posible que desee evitar el uso de la versión incluida de mysql y mysqldump.

1
Dean Or

En mi situación, estoy usando mac-OS. Por cierto, había [mysqldump] column-statistics=0 campos en my.cnf archivo que se coloca debajo de /usr/local/etc directorio. Eliminar ese campo solucionó el problema. (no: la versión de mysql es 5.7 e instalada a través de homebrew).

0
Hatip Aksunger

También tuve el mismo problema, ocurre cuando fusiono varias tablas de datos con el esquema existente desde otro esquema y exporto datos combinados a un archivo de script independiente. Intenté cambiar la estadística de columna = 0, pero el resultado fue el siguiente,

C:\xampp\mysql\bin>mysqldump --column-statistics=0 --Host=loalhost --user root --passwod
mysqldump: unknown variable 'column-statistics=0'

Entonces no había ayudado. Analizo el registro de MySQL encontré que

2019-01-21 11:31:30 1050 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
2019-01-21 11:31:30 4176 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

se queja del tamaño de innodb_buffer_pool_size. Lo hice a 24MB. Entonces funciona.

0
Rasike Abeyratne