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.
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.