MySQL - Erro: mysqldump: Got error: 1044 [Resolvido]

Publicado por Jeferson R. Costa em 19/07/2013

[ Hits: 20.773 ]

Blog: http://www.jefersonrc.com.br/

 


MySQL - Erro: mysqldump: Got error: 1044 [Resolvido]



A dica de hoje será para explicar o por quê e como resolver o erro:
"mysqldump: Got error: 1044: Access denied for user 'usuario'@'localhost' to database 'database' when using LOCK TABLES"

Apresentado quando tenta-se utilizar o comando:

# mysqldump...

Por default, quando você utiliza o mysqldump, o MySQL trava as tabelas para que nenhum dado seja inserido ou alterado durante o processo.

Isso garante maior consistência no resultado final da tarefa e o erro acontece quando você tenta executar o comando com um usuário que não tem o direito de travar essas tabelas, então, para resolvermos isso, basta adicionar o parâmetro "--single-transaction" ao comando, ficando da seguinte maneira:

# mysqldump database --single-transaction -u usuario -p'senha' > backup.sql

O único problema, é que enquanto o mysqldump faz o seu trabalho, as tabelas vão continuar liberadas, ou seja, qualquer gravação de dados será permitida, podendo causar inconsistência ao seu backup por exemplo.

Para resolvermos de uma maneira melhor e definitiva, devemos aplicar as permissões corretas ao usuário.

Como exemplo, vou aplicar permissão para consulta (select) e permissão para travar as tabelas (lock tables) ao usuário:

# mysql -u root -p'senha_do_root_mysql'

mysql> GRANT SELECT,LOCK TABLES ON DATABASE.* TO 'usuario'@'localhost'

Obs.: em "Database", coloque o nome da sua base de dados.

Pronto, agora o usuário terá acesso a consulta e o direito de travar as tabelas enquanto é feito o backup, sendo assim, você poderá usar o comando padrão, como abaixo:

# mysqldump -u usuario -p'senha' > backup.sql

Testado no Debian 6 e MySQL 5.1.


Veja essa e outras dicas em meu blog, onde posto dicas e soluções em infraestrutura de TI.

Gostou? Compartilhe e deixe seu comentário.

Achou algum erro? Precisa de ajuda? Críticas? Deixe seu comentário.
Obrigado!

Jeferson R. Costa

Outras dicas deste autor

Servidor Debian - Erro: Não existem chaves públicas para os seguintes IDs de chaves [Resolvido]

Descobrindo seu IP externo via linha de comando no GNU/Linux

Travando/bloqueando arquivos e diretórios no GNU/Linux

Alterando senha de usuário no MySQL

Habilitando/Desabilitando daemons no Debian

Leitura recomendada

mysqldump - Unknown table 'COLUMN_STATISTICS' in ... [Resolvido]

MySQL - Got error 28 from storage engine [Resolvido]

Perdeu a senha de root do MySQL? Recupere agora

Resetar senha de root perdida no MySQL no CentOS e Red Hat

MySQL - Vídeo mini-curso de introdução

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário