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

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

[ Hits: 24.703 ]

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

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

Erro: ERROR 2006 (HY000): "MySQL server has gone away" [Resolvido]

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

Erro: Id "co" respawning too fast: disabled for 5 minutes [Resolvido]

Desligando remotamente máquinas de um domínio

Leitura recomendada

Client MySQL com auto-completion e syntax highlighting

Buscando intervalo de datas apenas pelo dia e mês no MySQL

Recuperar senha de root do MySQL 8 no Fedora

MySQL rapidinho

MySQL Error: #1558 - Column count of mysql.proc is wrong. Expected 20, found 16. ... Please use mysql_upgrade to fix this error

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts