Toda vez que tento fazer um mysqldump
, recebo o seguinte erro:
$> 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)
O resultado é um dump que não está completo. O estranho é que o mesmo comando, executado de outro host, funciona sem lançar nenhum erro. Alguém passou pelo mesmo problema?
Estou usando mysql-client 8.0
e tento acessar um 5-7
servidor mysql - talvez seja esse o motivo?
Isso se deve a um novo sinalizador que é habilitado por padrão em
mysqldump
8 . Você pode desativá-lo adicionando--column-statistics=0
. O comando será algo como:Verifique este link para mais informações. Para desabilitar as estatísticas da coluna por padrão, você pode adicionar
para um arquivo de configuração do MySQL, vá para
/etc/my.cnf
,~/.my.cnf
ou diretamente para/etc/mysql/mysql.cnf
.Para aqueles que usam o MySQL Workbench, há um botão "Opções avançadas" na tela de exportação de dados. A opção "Usar Estatísticas de Coluna" pode ser desabilitada definindo como 0.
Eu não confirmei, mas as seguintes informações foram sugeridas como verdadeiras: Na versão 8.0.14 está faltando. Na versão 8.0.16 está fazendo isso por padrão.
Passei o dia inteiro procurando uma solução, e me cadastrei aqui só para compartilhar a minha.
Sim, este erro é devido a diferenças de versão.
Basta baixar o arquivo ZIP do MySQL 5.7 aqui: https://dev.mysql.com/downloads/mysql/ e descompactá-lo, então use o arquivo mysqldump.exe de lá.
Se você estiver usando o MySQL Workbench, você precisará definir um caminho para a ferramenta mysqldump que você baixou indo em Editar -> Preferências -> Administração (no painel esquerdo).
Espero que isto ajude.
Eu sei que estou atrasado para a festa, mas isso estava me deixando louco. Se você quiser usar um MySQL Workbench recente (tentou com o mais novo de hoje, MySQL Workbench 8.0.20), você pode corrigir este arquivo:
no macOS: (
/Applications/MySQLWorkbench.app/Contents/Resources/plugins/wb_admin_export_options.py
) Substituindo esta linha:com este:
Em seguida, remova o .pyo:
rm /Applications/MySQLWorkbench.app/Contents/Resources/plugins/wb_admin_export_options.pyo
Por fim, recarregue o Workbench novamente e na página Exportação de Dados, clique em "Opções avançadas..." e você verá a opção de estatísticas da coluna novamente (defina 0 para desabilitar e clique no botão Retornar)
Nota: você pode baixar o arquivo corrigido deste Gist .
Trabalho mais fácil
Ao usar o Mysql Workbench 8.0
Boa sorte!
Para facilitar essa resposta , você pode renomear
mysqldump
, fazer um shell script em seu lugar e chamar o renomeadomysqldump
com o--column-statistics=0
argumento. Por exemplo:Renomeie mysqldump:
Salve o seguinte script de shell em seu lugar:
Eu tive esse problema usando o último mysql workbench (8.0.23) no OSX (11.1) com mariadb. Eu resolvi selecionando a versão do mysqldump encontrada no pacote mariadb.
/usr/local/mariadb/mariadb-10.1.37-osx10.13-x86_64/bin/mysqldump
Além de pierlo https://serverfault.com/a/919403/586669
De dentro do MySQL Workbench existe uma opção para definir o caminho do executável mysqldump. (Editar - Preferências - Administração)
Assim, você pode criar um arquivo .cmd (no Windows) ou um arquivo .sh (no Linux ou mac) da seguinte forma:
mysqldump_nostatistics.cmd:
mysqldump_nostatistics.sh:
Observe a ordem dos parâmetros (é diferente da de pierlo): o comando dump executado inclui (ou pode incluir) uma
--defaults-file=
opção, e este deve ser o primeiro parâmetro.Além disso, o echo off é necessário, caso contrário, o workbench não poderá analisar a saída do comando corretamente.
Eu uso o XAMPP e o MySQL Workbench avisa sobre uma incompatibilidade de versão. Eu configurei o MySQL Workbench para apontar para o mysql.exe e mysqldump.exe do XAMPP.
Vá para Editar -> Preferências -> Administração e defina o caminho para cada um.
Isso funciona pelo menos para a versão 8.0.14. Então, para outros, você pode querer evitar o uso da versão empacotada do mysql e mysqldump.
Para o macOS você precisa da versão mais antiga (8.0.13) para ver as "estatísticas da coluna", pois testei a versão 8.0.14 e 8.0.15 e ambas não mostram as "estatísticas da coluna".
Então, para ajustar as "column-statistics" use a versão 8.0.13 https://downloads.mysql.com/archives/get/file/mysql-workbench-community-8.0.13-macos-x86_64.dmg