Como ignoro erros no mysqldump?


12

Ao despejar um banco de dados, estou recebendo

mysqldump: Couldn't execute 'show create table `some_table`': execute command denied to user 'some_user'@'%' for routine 'some_routime' (1370)

e então o dumping simplesmente para.

Como faço para o mysqldump continuar quando se depara com esse tipo de problema? 10 minutos do Google não ofereceram ajuda.

Aqui está o comando que eu usei:

mysqldump -u username -h localhost --port=4406 -p --databases database_name --skip-lock-tables --force > database_name.sql

Respostas:


27

homem mysqldump

-f, --force         Continue even if we get an sql-error.

Ok, eu pensei que isso estava falhando, mas aparentemente funcionou. O despejo parece ter terminado, mas os erros ocorreram no final, parecendo com os erros do despejo.
Chad Johnson

Ele já forneceu a opção --force no comando que ele nos mostrou.
Zoredache

1
desculpe não percebi.
Chocripple

1
@Chad Johnson, uma pessoa pode argumentar que, se você não pode obter um backup limpo sem usar --force, seu backup falhou. A opção forçar suprime erros que podem ser importantes. Por favor, não use --force em um script de backup do qual você dependerá.
Zoredache

Isso é apenas para que eu possa obter um despejo de um banco de dados para trabalhar localmente. Nada importante.
Chad Johnson

1

AFIAK, você não pode. Você precisa de privilégios suficientes para executar mysqldump. Por que você não deu executeprivilégios ao usuário que está executando?


2
Porque minha empresa me obriga a passar por outro departamento :(
Chad Johnson
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.