Pular para o conteúdo

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

Dica publicada em Banco de Dados / MySQL
Jeferson R. Costa rcjeferson
Hits: 25.808 Categoria: Banco de Dados Subcategoria: MySQL
  • Indicar
  • Impressora
  • Denunciar

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

Iniciando o Debian mais rápido removendo o GRUB

dos2unix - Convertendo arquivos Windows para GNU/Linux

Inserindo máquina com Windows 7 no domínio Samba

Fail2ban em servidor SSH

Squid: "ERROR: no running copy" [Resolvido]

Sistema gereciador de estoque em Gambas2

Comandos úteis do MySQL

Ferramenta para migrar tabelas de Oracle para MySQL

Acelerando a velocidade de conexão das páginas do MSN-Proxy

SELECT data = hoje/ontem/anteontem no MySQL

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.