Estou usando o automysqlbackup
script para despejar meus bancos de dados mysql, mas quero ter um usuário somente leitura para fazer isso, para não armazenar minha senha do banco de dados raiz em um arquivo de texto sem formatação.
Eu criei um usuário assim:
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
Quando executo mysqldump
(através automysqlbackup
ou diretamente), recebo o seguinte aviso:
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
Estou fazendo errado? Preciso de doações adicionais para meu usuário somente leitura? Ou só pode root
trancar a information_schema
mesa? O que está acontecendo?
Editar:
GAH e agora funciona. Talvez eu não tenha executado o FLUSH PRIVILEGES anteriormente.
Como um aparte, com que frequência isso ocorre automaticamente?
Editar:
Não, não funciona. A execução mysqldump -u username -p --all-databases > dump.sql
manual não gera um erro, mas não despeja o information_schema. automysqlbackup
gera um erro.
fonte
mysqldump
: mysqldump não despeja o banco de dados INFORMATION_SCHEMA. Se você nomear esse banco de dados explicitamente na linha de comando, o mysqldump o ignorará silenciosamente. Parece que a página de manual está desatualizada (e gera um aviso) ouautomysqlbackup
está executando algumas verificações adicionais no dumpinformation_schema
. Não tenho certeza qual é, mas não está relacionado a concessões de usuários.Respostas:
Essas permissões devem ser tudo o que é necessário para o mysqldump.
Como você concedeu LOCK TABLES e está com erro em LOCK TABLES, parece que as permissões são inconsistentes. Você já executou um
FLUSH PRIVILEGES
?fonte
Ops ... da página de manual para
mysqldump
:Parece que a página de manual está desatualizada (e gera um aviso) ou
automysqlbackup
está executando algumas verificações adicionais no dumpinformation_schema
.Não tenho certeza qual é, mas não está relacionado a concessões de usuários.
Editar
Sim, é um bug na
automysqlbackup
versão 2.5.1 (usando o MySQL 5.1.41 no Ubuntu 10.04) - ele tenta fazer backupinformation_schema
quando não deveria.CORRECÇÃO: Adicione
information_schema
àDBEXCLUDE
linha 76 do script.fonte