J'utilise le automysqlbackup
script pour vider mes bases de données mysql, mais je veux avoir un utilisateur en lecture seule pour le faire afin que je ne stocke pas mon mot de passe de base de données racine dans un fichier en clair.
J'ai créé un utilisateur comme ça:
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
Lorsque je cours mysqldump
( automysqlbackup
directement ou directement), j'obtiens l'avertissement suivant:
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
Suis-je en train de mal faire? Ai-je besoin de subventions supplémentaires pour mon utilisateur en lecture seule? Ou ne peut que root
verrouiller la information_schema
table? Que se passe-t-il?
Éditer:
GAH et maintenant ça marche. Je n'ai peut-être pas exécuté FLUSH PRIVILEGES auparavant.
En passant, à quelle fréquence cela se produit-il automatiquement?
Éditer:
Non, ça ne marche pas. L'exécution mysqldump -u username -p --all-databases > dump.sql
manuelle ne génère pas d'erreur, mais ne vide pas le schéma d'informations. automysqlbackup
soulève une erreur.
mysqldump
: mysqldump ne vide pas la base de données INFORMATION_SCHEMA. Si vous nommez cette base de données explicitement sur la ligne de commande, mysqldump l'ignore silencieusement. Semble que la page de manuel est obsolète (et qu'elle déclenche un avertissement), ouautomysqlbackup
effectue des vérifications supplémentaires sur le vidage pourinformation_schema
. Je ne sais pas de quoi il s'agit, mais ce n'est pas lié aux subventions des utilisateurs.